掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5261|回复: 35

[辅助工具] 纯JavaScript实现的MDict解析器,请大家提建议

[复制链接]

该用户从未签到

发表于 2015-8-5 11:05:40 | 显示全部楼层 |阅读模式
本帖最后由 fengdh 于 2015-8-5 12:49 编辑
. K1 d% F& }8 o& b# O& u' V3 t4 y
" J; i9 [& }, K, J! ?. P6 I5 q我并非MDict深度用户,不过因为想为自己开发的浏览器插件提供本地离线字典功能,结果用纯JavaScript实现了一个MDict解析器。这个开源项目现在仍然开发之中,大家可以去 http://fengdh.github.io/mdict-js/ 围观,欢迎提出建议。这仅是一个在线功能演示,还不是一个MDict在线字典的完全实现。它没有服务器端,仅仅通过网页形式提供所需的Javascript库。需要用户从本地选择mdx而且可以附加一个mdd资源文件,因为不会上传服务器完全在本地解析查询,所以几乎是瞬间得到结果。现在可以支持图像/语音/简单跳转/模糊查询/mdd内置样式文件等等。9 x' \$ }$ D8 [: t' B8 Z
. W# d) r/ F% R
我用手头的LDOCE/OALD/Webster/American Heritage/WordNet多个版本做过测试,字典和资源文件支持词条索引加密但不支持需要注”册-码的索引头加密,支持文件压缩(gzip/lzo都可以)、词条链接、语音(wav和spx,需要mp3支持吗)。暂不支持超大文件(>4G,离线维基?)。暂不支持Stylesheet替换(还没遭遇过使用这个功能的字典,哪位可以提供个实例就太感谢了)。只对英语和汉语词典测试过,不知道其他语言有没有大问题。: \: K# d8 W$ p/ m5 h! W
& L+ f$ J7 f" G& u8 I5 V# S
我打算用它来实现支持单词管理的在线阅读辅助插件,和WordNet可视化字典WebApp等等。将来可以考虑用nw.js/electron/NativeScript来实现跨平台支持,或集成到如多看等基于WebkitView的应用。凭借现代浏览器的功能和Javascript,比较容易开发和扩展很多有意思的功能。比如,复用其他字典的语音资源,甚至给任意字典加上语音或者替换不甚人意的版本。更容易定制字典式样等等。希望大家能提一些有意思的想法,希望和有能之士合作。2 n# C; `5 x8 S! W

/ i. I( g9 w5 F  U; i) u5 Z忘了一点,暂时不支持IE(9-11,因为缺乏TextDecoder支持,已经找到polyfill有空加上),想来Windows10的Edge浏览器(号称全面兼容Chrome)应该没问题。8 j3 i' T, U6 c% v7 @2 k
4 W) v; Y9 ^, S4 P
谢谢。3 K+ V1 e# h- x; f- n

& h9 P; N9 N+ C+ Z* k+ u$ F" S6 H  J" \( F; I7 n
: |6 u9 K" {) ?& M

9 ?2 F) y: j8 o' X0 B& x! A! H# g5 }! O% h
4 C' V* |6 R, G- [$ `

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

本帖被以下淘专辑推荐:

该用户从未签到

发表于 2015-9-3 15:44:29 | 显示全部楼层
如果做成chrome的插件,能在chrome页面里分成左右两栏来,左边显示浏览网页,右边是词典查询界面及查询结果就好了,那样的话goldendict也可以退休了。楼主加油
  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 1919 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:04/ |& s0 F0 |5 I; Y$ K- O0 l
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...
    - _1 [5 n5 v6 r; d) y
    & k" y$ ~* U  O  I& ]
    可能此词典作者还没有公开过吧。。。, d0 A2 {5 [! x, x) M* N8 G# }
    # [1 `- c4 d* E: O5 \- V* O7 \1 ~' {
    dog
    & A4 e- J( g# k- w0 S<link rel="stylesheet" type="text/css" href="CALDEC.css" /><a name="C_topz"> <a><span class=C_ENT>dog</span C_ENT><blockmark><a href="entry://#C_hkz1" class=CP_OS>noun</a> | <a href="entry://#C_hkz2" class=CP_OS>noun</a> | <a href="entry://#C_hkz3" class=CP_OS>verb</a> | <a href="entry://#C_hkz4" class=CP_OS>verb</a></blockmark>4 D! w: U+ }+ Q3 r# }1 G/ t1 R
    <hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />9 u( X9 f& r  c' @7 Y
    <span class=CHW>dog</span CHW> <span class="di-info"><span class="posgram"><span class=C_POS>noun</span C_POS> <span class=C_GRE>C</span C_GRE> <span class="C_GW">ANIMAL</span C_GW><span class=CD_CH>动物</span CD_CH>
    $ |& d& f* a, X1 F  w+ F<span class="Spron-uk" data-src-mp3="C-A-Muk_pron/u/ukd/ukdoc/ukdocud022.mp3" data-src-ogg="C-A-Muk_pron_ogg/u/ukd/ukdoc/ukdocud022.ogg"></span Spron-uk>5 s2 w9 h: ~; M2 B$ D
    <span class="Spron-us" data-src-mp3="C-A-Mus_pron/d/dog/dog__/dog.mp3" data-src-ogg="C-A-Mus_pron_ogg/d/dog/dog__/dog.ogg"></span Spron-us>
    9 G" V# e4 s# }  F) V3 O0 R1 u<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    2 [; j! k8 P1 {# d<span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>: J" j  J/ S* ?  A, H
    <span class=C_BODY><span class="sense-block">
    9 |* a1 S7 N- N  _<span class="sense-body"><span class="def-block"><span class="def-head"><span class="def-info"><span class=C_SQU>■</span></span><span class="def">a common animal with four legs, especially kept by people as a pet or to hunt or guard things</span></span><span class="def-body">
    " J+ Z6 a8 r+ q# r<span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>- L2 H2 J% Y$ V! O; ?, @
    <span class=C_EX><span class=C_RND>&#8226;</span><span class=C_EEX>my pet dog</span><span class=C_CEX>我的宠物狗</span C_CEX></span>+ i( L# f* a2 G7 C
    <span class=C_EX><span class=C_RND>&#8226;</span><span class=C_EEX>wild dogs</span><span class=C_CEX>野狗</span C_CEX></span>
    3 ~" T% v1 W* ?2 y4 u( c<span class=C_EX><span class=C_RND>&#8226;</span><span class=C_EEX>dog food</span><span class=C_CEX>狗粮</span C_CEX></span>( o* Q8 k5 ]! w! _1 y% n! o
    <span class=C_EX><span class=C_RND>&#8226;</span><span class=C_EEX>We could hear dogs barking in the distance.</span><span class=C_CEX>我们可以听到远处的狗叫声。</span C_CEX></span>
    1 W1 g; C8 O2 z* t# M. u<span class="smartt"><span class="mcat"><span code="REAFE" class="cat-xref">Canines (dogs)</span></span></span></span></span></span></span sense-block></span C_BODY>
    & i1 B1 n! Z# _# A8 |<hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />
    - J3 N+ W- c3 W! ?! u4 y- p9 h<span class=CHW>dog</span CHW> <span class="di-info"><span class="posgram"><span class=C_POS>noun</span C_POS> <span class=C_GRE>C</span C_GRE> <span class="C_GW">PERSON</span C_GW><span class=CD_CH>人</span CD_CH>
    " v9 }; `9 M% E<span class="Spron-uk" data-src-mp3="C-A-Muk_pron/u/ukd/ukdoc/ukdocud022.mp3" data-src-ogg="C-A-Muk_pron_ogg/u/ukd/ukdoc/ukdocud022.ogg"></span Spron-uk>
    6 V  H& B9 q! h/ O<span class="Spron-us" data-src-mp3="C-A-Mus_pron/d/dog/dog__/dog.mp3" data-src-ogg="C-A-Mus_pron_ogg/d/dog/dog__/dog.ogg"></span Spron-us>" d% ?0 b! U/ v! t. \+ ]
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>* @! `, C1 v  g. e5 O, j9 p' T
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>+ \" h# t8 v  r8 y" u
    <span class=C_BODY><span class="sense-block">
    1 |: g5 h8 {& C2 U+ L<span class="sense-body"><span class="def-block"><span class="def-head"><span class="def-info"><span class=C_SQU>■</span><span class=C_LAB><span class=C_USAG>slang</span></span></span> <span class="def">a man who is unpleasant or not to be trusted</span></span><span class="def-body">
    & _  V4 t5 t* y( k8 S1 F0 @- G" J  N<span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>
    0 {# h1 v' h* I8 ?4 p4 x; j6 @' a<span class=C_EX><span class=C_RND>&#8226;</span><span class=C_EEX>He tried to steal my money, the <span class=C_STR>dirty</span> dog.</span><span class=C_CEX>这个无赖,他想偷我的钱。</span C_CEX></span>1 E  u, y4 A0 ^) L+ [  h9 }, ~
    <span class="smartt"><span class="mcat"><span code="NLL" class="cat-xref">Kinds of men</span><span class="scat"><span code="NGFA" class="cat-xref">Men and women</span></span></span><span class="mcat"><span code="F1KB" class="cat-xref">Unpleasant men</span><span class="scat"><span code="F1KC" class="cat-xref">Unpleasant people in general</span></span></span></span></span></span> <span class="def-block"><span class="def-head"><span class="def-info"><span class=C_SQU>■</span><span class=C_LAB><span class=C_USAG>offensive</span></span></span> <span class="def">a woman who is not attractive</span></span><span class="def-body">
    ! r2 S+ {! O5 ?7 B- y! f  g) A- o<span class=C_DCH>丑女</span C_DCH>& S* \  T  _, B% q
    <span class="smartt"><span class="mcat"><span code="F1KA" class="cat-xref">Unpleasant women</span></span></span></span></span></span></span sense-block></span C_BODY>6 v2 p0 F5 i0 ]- M
    <hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />. N* e" H) h/ S3 V
    <span class=CHW>dog</span CHW> <span class="di-info"><span class="posgram"><span class=C_POS>verb</span C_POS> <span class=C_GRE>T</span C_GRE> <span class="C_GW">FOLLOW</span C_GW><span class=CD_CH>跟随</span CD_CH>
    " p$ G, f  z, f  L, P4 u: _  f<span class="Spron-uk" data-src-mp3="C-A-Muk_pron/u/ukd/ukdoc/ukdocud022.mp3" data-src-ogg="C-A-Muk_pron_ogg/u/ukd/ukdoc/ukdocud022.ogg"></span Spron-uk>
    ) V9 Y; f5 p: t4 d8 z9 w1 o<span class="Spron-us" data-src-mp3="C-A-Mus_pron/d/dog/dog__/dog.mp3" data-src-ogg="C-A-Mus_pron_ogg/d/dog/dog__/dog.ogg"></span Spron-us>- ^/ n) y" d# @) B
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    # ]- Q, x; y1 {7 K. L5 I<span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> <span class="irreg-infls">(<span class="inf-group"><span class=C_INF>-gg-</span></span>)</span></span>+ |4 ?$ C4 r$ r( v# g' R
    <span class=C_BODY> <span class="sense-block">
    3 ]' f2 Q1 D* X+ Q<span class="sense-body"><span class="def-block"><span class="def-head"><span class="def-info"><span class=C_SQU>■</span></span><span class="def">to follow someone closely and continuously</span></span><span class="def-body"># ?6 \3 x, x3 ]% j
    <span class=C_DCH>跟随;跟踪</span C_DCH>
    ) O; e" P# c1 J3 |4 N<span class=C_EX><span class=C_RND>&#8226;</span><span class=C_EEX>Reporters dogged him for answers.</span><span class=C_CEX>记者们跟着他让他回答问题。</span C_CEX></span>. ]/ T! U% i1 s3 C! o  E% ^  e$ t
    <span type="See_also" class="entry-xref"><span class=C_ARR>&#8658;</span><span class=C_LAB>See also</span> <span class=C_x><a href="entry://dogged" class=C_REF>dogged</a></span></span><span class="smartt"><span class="mcat"><span code="DK" class="cat-xref">Pursuing</span></span></span></span></span></span></span sense-block></span C_BODY>7 \- d/ r6 e* x: ^( I8 Y2 |9 O
    <hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />( M$ F) G* b/ d0 x7 }6 u1 R
    <span class=CHW>dog</span CHW> <span class="di-info"><span class="posgram"><span class=C_POS>verb</span C_POS> <span class=C_GRE>T</span C_GRE> <span class="C_GW">PROBLEM</span C_GW><span class=CD_CH>问题</span CD_CH>
    4 w# B$ M  _5 d* f; k% y7 o: a<span class="Spron-uk" data-src-mp3="C-A-Muk_pron/u/ukd/ukdoc/ukdocud022.mp3" data-src-ogg="C-A-Muk_pron_ogg/u/ukd/ukdoc/ukdocud022.ogg"></span Spron-uk>
    % e/ U+ z! z2 Y  I<span class="Spron-us" data-src-mp3="C-A-Mus_pron/d/dog/dog__/dog.mp3" data-src-ogg="C-A-Mus_pron_ogg/d/dog/dog__/dog.ogg"></span Spron-us>
    - j9 ~' o" E' C<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>$ D0 n; T; p8 Q% B- s
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> <span class="irreg-infls">(<span class="inf-group"><span class=C_INF>-gg-</span></span>)</span></span>7 }- @! K' l( H
    <span class=C_BODY> <span class="sense-block">
    ( W7 e8 e5 A& h9 F, _8 x8 G<span class="sense-body"><span class="def-block"><span class="def-head"><span class="def-info"><span class=C_SQU>■</span></span><span class="def">to cause difficulties</span></span><span class="def-body"># ?1 K. y/ b$ b
    <span class=C_DCH>困扰,阻碍</span C_DCH>6 b2 ~6 ]/ e/ K5 x+ n5 U6 }& }) ~
    <span class=C_EX><span class=C_RND>&#8226;</span><span class=C_EEX>Technical problems dogged our trip from the outset.</span><span class=C_CEX>技术问题从旅行一开始就一直困扰着我们。</span C_CEX></span>* ^- s5 M0 n( K  H# F
    <span class="smartt"><span class="mcat"><span code="FeN" class="cat-xref">Inconvenience</span></span></span></span></span></span></span sense-block></span C_BODY>
    . y4 ~- \0 R+ E1 x; S9 K* X</>
      C8 P: ?( J# W3 b9 U给你部分demo内容。。。3 C5 o7 r$ b! m9 q* F8 d) Z

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑 9 J: v) s) r2 _; c- f, n( I
    bt4baidu 发表于 2015-9-3 15:36
    ( h6 R. P2 b* U6 N% Yhttps://www.pdawiki.com/forum/fo ... &extra=page%3D1
    % z3 \9 X. K- d% f里面的动态功能都是 ...
    8 ~' {2 t& \4 S) G" f

    ( p2 u' O, k4 R7 @已经修改了online demo,加入了对内嵌JavaScript的支持。
    ) ]. C: K" c5 P) u& k( Z0 f
    7 ^: m8 D  `4 K1 O+ o. G关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
    ' X- u! y( M, T7 z7 [不知道你有没有兴趣一起开发?我想做成这样的
    6 C! L1 W, I; ^' F; Hhttp://www.hi-pda.com/forum/viewthread.php?tid=1210672; d( S$ R& d; k5 P% b4 D% u

    & Z3 [3 S2 s7 R
    . N; Q1 n# ^1 p! t$ A有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
    2 W! s; R1 R! _1 y* l( j; ~
    1. 5 D  O# w9 L& ?- S& r# o7 E7 y, z
    2. (function _my_code(window) {2 ]+ p0 G: O; Y' {% |& Y* }+ H
    3.    function u(c, n) {..}
      0 n& F+ |1 Z; i
    4.    ..  ) c7 b' ^5 \2 Z1 z) C; N) X; Q
    5.    function w() {..}, O8 ~! v& ]4 {
    6.    var F = 0;
      8 H& b9 J2 ?- ]( X

    7. - n1 J1 t& e1 P9 b" t7 T
    8.    function i() {
      % c. F$ @& f$ ]5 Z5 C$ [) ^1 \
    9.      if (!F) {. A' [! k* K) h
    10.        F = 1;
      * j  t7 N3 ?+ n. q! `' n
    11.        w();6 q  K9 L' o; K
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);5 D3 A6 }8 b8 ~% Z2 r. f
    13.      }: [+ S9 b$ s: X. E: T
    14.    }
      2 h4 @* S* _6 K8 O$ q, J% I% `
    15.    if (window.addEventListener) window.addEventListener("load", i, false);
      / P1 |' t! }# z
    16.    else window.attachEvent("onload", i);
      7 p) ^/ h4 L2 D
    17.     " Q% X" |5 Q5 D; W0 I( k
    18. }) (this);  /* In global scope, "this" is the window object. */0 R" w) s; Q/ w. S' D
    复制代码
    ' X9 }# k, Y9 A# @# j9 p
    ' }: Y2 o" K! C5 ^6 `$ Y
    具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
    7 H% W/ x7 S* o; u2 v+ c0 i  O7 A  O9 E& k' H: ]! _; t1 q
    另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑 & i6 [' t( T' ?( Q8 D, O

    8 L- g6 l( P1 |1 C! u2 Z3 ^
    6 V! j; G+ N. ]8 U" S
    + [( y8 G5 h* D( o$ J2015年8月5日 11:17:33% p0 k4 K, J# K! \2 I% o
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。- O  k3 |- E6 o" q  a
    <del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>
    4 w& j9 J+ ^1 ]: j# a" C" i) ~0 G- i& _$ c* t3 Z

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:12$ f3 d/ y8 h1 k$ _/ e
    想法相当赞啊,不过刚试了,貌似还查不了词噢。
    . A0 K/ V/ @! Q4 f2 ?( F
    # r; F7 q6 k2 N' E7 o2 D+ Y+ G
    可以查字典。3 v) e# A- a! ?2 h
    ( U* u+ b) f' v: j- u2 S2 J
    1. 需要先选择本地字典文件。
    - u7 }& k1 {0 R+ q9 A2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。& u6 D1 M, Z% Z7 \0 j- O6 g
    3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑 : |& }/ h: \& ~% Q4 a+ a  k5 l
    Oeasy 发表于 2015-8-5 11:124 g* r. @( \8 M4 ?
    2015年8月5日 11:17:339 o7 G6 D- k" m2 i9 I3 X  g
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...
    8 _) l5 w" [) L  }5 J- ~' s

    : M1 F; E9 ?$ f6 {出于安全原因,浏览器是不能自动加载文件的。不过插件可以。2 }0 K  T1 O2 y

    9 u0 \6 W9 s% s# R* A3 w. \; H关于排版,正在考虑允许同时选择CSS文件。. M2 y8 q; O$ H. ^2 J8 ?  P: E( k
    ; F: ~  Y" m# M+ i$ b
    IE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 1919 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 11:47:16 | 显示全部楼层
    <span class="C_ENT">dog</span><blockmark></blockmark></a><a href="entry://#C_hkz1" class="CP_OS">noun</a> | <a href="entry://#C_hkz2" class="CP_OS">noun</a> | <a href="entry://#C_hkz3" class="CP_OS">verb</a> | <a href="entry://#C_hkz4" class="CP_OS">verb</a>3 q) y% `$ ~" o- A, [: y
    内跳还是有问题。。。
    ; D0 a1 Z6 a4 ~2 c& a没有再分析或直接替换成#C_hkz4

    该用户从未签到

     楼主| 发表于 2015-8-5 12:13:37 | 显示全部楼层

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑 6 d8 e4 K" s8 n% a2 t0 ?
    peterdocter 发表于 2015-8-5 11:47
    % |" d" Q/ d/ Y, u0 P: |dognoun | noun | verb | verb7 _+ Z, r# {+ f- n) s2 ]& F
    内跳还是有问题。。。7 b+ K9 V3 u! a8 p
    没有再分析或直接替换成#C_hkz4
    0 l0 e4 N- S5 N. W1 }4 T
    5 q" f' P2 t  j. o) u' X6 P; x
    谢谢意见。
    * z4 H" g% J2 z  w) s9 k; a# K9 i) Z6 X4 Z/ _' f9 U
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    0 F- `/ q3 u3 r1 s8 x) k
    ; Q) t5 x9 C* q0 H+ L我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。
    0 F) j/ c8 d( P2 X! t$ e7 ^4 {* o我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 1919 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:13- M1 W" B, Y& ]4 u% ^
    谢谢意见。
    3 F& h( E! R' @1 L+ e$ n7 m" P" Q  |) O+ W
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。

    : N$ O- }4 ?4 D8 X2 t5 l1 ~https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:51
    % o8 \3 V  A. p9 l' {% @. T% `; W+ ehttps://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    " e- \) h  D* u6 d8 E& Y1 b您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:03
    " C5 R( y* J- B7 f/ N3 X可能此词典作者还没有公开过吧。。。
    3 b( S0 ~) n7 G9 E& F# ]% a  y2 X; F% g
    dog

    : _1 X: m& a" t' G
    1 V0 G  g# f3 B+ [' R1 P谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。
    7 O7 Z) ^7 D2 T6 u5 H
    3 H, v; Z9 A( c2 h8 t+ n. k您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

    发表于 2015-8-5 17:09:33 | 显示全部楼层
    wow!,测试了一下 真是激动

    该用户从未签到

    发表于 2015-8-6 08:09:24 | 显示全部楼层
    " ~; M3 B5 ^4 f& M) w: x- a

    " @) }6 m+ `! ^3 _8 r感谢楼主辛苦工作。
    ( L) Z+ N  b) G反馈一个。& L- R0 G5 G$ R% X( t2 Q8 q5 ^  [! u) A
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。
    * \7 g6 p  Y6 q) T' Y9 u3 l$ u3 ~如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。
    : R  n# I2 c  U: {7 n
    3 x0 T$ X; [! a5 q+ ^" j' p( h6 N+ \  C# q5 S

    , w. ?: w3 w% T7 F, ~2 r! B/ S

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑 ' P2 i3 I7 {5 e. C; K* h8 x1 A
    Oeasy 发表于 2015-8-6 08:09
    ! r7 G  U- S$ G+ c/ _$ y& Q0 B/ M' v感谢楼主辛苦工作。
    ) g1 f8 m5 ~2 Y; o. c. N反馈一个。. E1 r9 X9 o1 @0 X4 u
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...

    * T/ L# L7 i$ ]- z/ X0 g
    3 ?1 |& O  [4 T7 U: \4 K: w4 f7 \6 P这只是个概念验证/功能演示版,离完工还远着呢。. U% h, f) `5 e% v  r
    现在专注修改核心,界面等有空慢慢改吧,
    0 Z* u0 F. P! G* }3 W9 i真希望有UI/UX经验的同道加入合作。7 i& Q3 P$ b% d5 T  t

    , S" {$ y1 @' ^& X7 b7 P  a具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

    发表于 2015-8-7 00:34:55 | 显示全部楼层
    语音方面,建议支持mp3格式的mdd文件。

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:34' d  f3 x4 ]% X% W" S' s4 C
    语音方面,建议支持mp3格式的mdd文件。
    3 V. N+ r. |6 D. A( j
    已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。$ r! F0 w) X! ?/ U0 a
    7 f$ W8 p# K6 n$ r/ K
    不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 1919 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41& C3 [7 C1 ]- X* J1 K& B1 l! D  h' g
    谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。, K( I$ c$ ?  F

    # p- v5 X! H9 }( W您可以在顶楼提到的MDict on ...

    0 c0 Q4 u2 m5 p  \9 T2 W' S不错!不过还有一个bug* d2 o# X0 k6 {" J$ `( N
    <a href="entry://dogged" class="C_REF">dogged</a></
    ) K* B9 A" X" B! f0 ]没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑 ( s! [! b% ~% r" B9 ~4 S" ?) r
    peterdocter 发表于 2015-8-7 13:03
    9 K% L! Q  z* E( g7 P& F) [# |不错!不过还有一个bug
    - s& M5 V1 I! E3 R+ ~2 Edogged

    . F, V' R, \, }2 f( `7 b/ i
    ( y6 r2 t( {& E) {( j: p5 m2 b这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。( q/ T0 d. I: ~- P
    4 A' b4 i3 C1 l. j( h# Y  Y
    当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    $ o. C. k* K6 Z+ J9 R6 I! ~* X/ \7 c" O: J8 x! C& c) ?) U8 L4 R
    不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。
    * o. V$ Q% j( }9 {7 W
    ( ?% [* z& ?/ G$ }3 d已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 1919 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:11
    1 T+ g* ?7 |: a" E8 k  N3 H( |; u& R这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。+ q! s$ D- k' v* y$ z
    7 f, A. B; Z  Q/ A: v2 Z
    当点击形如 entry:// 非页内跳转 ...

    # F- g. @1 q& }. }+ I( ?再给你demo调试,而且可以连跳了 % l  H; Z: z) c" h7 ?

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:18
    , n' I7 \9 e& j( y  J, C再给你demo调试,而且可以连跳了
    & W4 O7 i9 n  F6 i
    我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。
    6 F9 K# l' T4 V$ u5 c! R* |
    0 q7 M0 Y$ q) @3 n) X3 j, H( g8 u另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?
    6 ?. D, G  e* i1 V% C. z
    , ?. J/ `) v- l. j0 S/ `dogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。/ e( x! V- t9 z7 ?

    1 |( V5 I- r& Y7 }# G$ G回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑
    9 M0 U( t8 n, T- X7 h/ B. Y0 ?6 k: `2 U7 U, Z
    支持!% Q$ t, f9 X9 z: _
    原來樓主就是因為Chrome插件而開發的
    : P! [6 l( X( O( \: Ahttps://github.com/fengdh/ChaZD- b7 u" o2 c& q$ r3 `
    3 w  X9 Q% q7 w
    今年度有可能融入到插件裡嗎?

    该用户从未签到

    发表于 2015-9-1 17:51:28 | 显示全部楼层
    词典里面有javascript脚本的话,似乎解析不出来

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:51
    7 v0 N) y* O" w' {词典里面有javascript脚本的话,似乎解析不出来
    1 v; t, x9 x6 {6 t; d+ e8 t8 N
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:27
    + H8 t/ n6 G# b1 H6 h- P原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    5 a. ]4 w- C! Q% m% J, i+ f' v7 r4 vhttps://www.pdawiki.com/forum/fo ... &extra=page%3D1( o4 e" G1 }/ U* o
    里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2024-4-29 10:14 , Processed in 0.112214 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

    快速回复 返回顶部 返回列表