掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5204|回复: 35

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

[复制链接]

该用户从未签到

发表于 2015-8-5 11:05:40 | 显示全部楼层 |阅读模式
本帖最后由 fengdh 于 2015-8-5 12:49 编辑
1 N- L$ `- t0 N) S' t6 E; {9 ]: {9 f, w' f* V/ o: N
我并非MDict深度用户,不过因为想为自己开发的浏览器插件提供本地离线字典功能,结果用纯JavaScript实现了一个MDict解析器。这个开源项目现在仍然开发之中,大家可以去 http://fengdh.github.io/mdict-js/ 围观,欢迎提出建议。这仅是一个在线功能演示,还不是一个MDict在线字典的完全实现。它没有服务器端,仅仅通过网页形式提供所需的Javascript库。需要用户从本地选择mdx而且可以附加一个mdd资源文件,因为不会上传服务器完全在本地解析查询,所以几乎是瞬间得到结果。现在可以支持图像/语音/简单跳转/模糊查询/mdd内置样式文件等等。, F) H4 ]; _- p! z% }+ ?

5 K) h& P1 G) p/ G4 g2 f1 F我用手头的LDOCE/OALD/Webster/American Heritage/WordNet多个版本做过测试,字典和资源文件支持词条索引加密但不支持需要注”册-码的索引头加密,支持文件压缩(gzip/lzo都可以)、词条链接、语音(wav和spx,需要mp3支持吗)。暂不支持超大文件(>4G,离线维基?)。暂不支持Stylesheet替换(还没遭遇过使用这个功能的字典,哪位可以提供个实例就太感谢了)。只对英语和汉语词典测试过,不知道其他语言有没有大问题。
5 M: U; s6 O) E5 {2 M/ _- W
6 t& l# }; M/ Z  E8 d& a+ U我打算用它来实现支持单词管理的在线阅读辅助插件,和WordNet可视化字典WebApp等等。将来可以考虑用nw.js/electron/NativeScript来实现跨平台支持,或集成到如多看等基于WebkitView的应用。凭借现代浏览器的功能和Javascript,比较容易开发和扩展很多有意思的功能。比如,复用其他字典的语音资源,甚至给任意字典加上语音或者替换不甚人意的版本。更容易定制字典式样等等。希望大家能提一些有意思的想法,希望和有能之士合作。' [; H8 k; M3 x9 f, t  t
6 S* _/ y3 k$ ?7 e
忘了一点,暂时不支持IE(9-11,因为缺乏TextDecoder支持,已经找到polyfill有空加上),想来Windows10的Edge浏览器(号称全面兼容Chrome)应该没问题。" B- h! H, J: N; ^. s, B9 x4 Z

9 E) G, G* H+ i3 \1 _8 p2 @谢谢。3 |. X2 v! N  @  a) Z

6 m( S6 `5 a& E) G, K, z$ x4 ^) H3 S7 T# x) c

4 b2 a: R6 b! n) u9 k# V- W, O, r3 y1 T9 w& z6 ?$ U! q9 {
! [* t* h& @4 |$ d$ }' d* x; c0 @
! Q& q2 X5 @% X7 R

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

该用户从未签到

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

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:04, d, [3 p0 }& {2 m8 k
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...
    2 R0 O1 {% S9 ?" S
      m# o7 M* |  Q% h. V# f: Z0 L
    可能此词典作者还没有公开过吧。。。
    / ]2 R. Z. A! q, Q. [
    8 o1 h7 r! }) `3 G2 Fdog
    6 X* n' b6 L7 f5 o8 ~  E: H( I1 `<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 {: R* ~$ |! J$ p5 f. ~<hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />" s0 Q# F3 a7 Z  m( T- z" N
    <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>4 p* k* n% h6 V6 Z. 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>
    3 j2 a/ C; H+ e& ]<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, g' C, x. z9 |& _, Q<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    1 s3 n3 d; S- |/ `8 u<span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    " w; F) E% X5 K4 Y1 v/ V, e<span class=C_BODY><span class="sense-block">; Z+ {7 [2 ?$ N, j+ S/ b! b
    <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">
    7 n5 K) U/ O7 o/ [% \8 {2 N<span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>
    - p, x4 b! V* G; z* ?<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>0 I/ o* J8 R' k
    <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>
    : E. d' s$ n4 E5 }7 ~<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>
    , q& I; M% v; m: U0 d6 @0 B, H<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>
    ! q$ {0 p$ f5 S5 k. o/ T<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>  y  m4 z; C* H3 I! h; f
    <hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />
    3 r6 ^- f0 |  H) R- S<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>' y( M  z/ q3 \9 C4 H3 |
    <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>. o# n' J- j) x) }
    <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>- _0 ^" d" M2 |1 P% b
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>/ i4 {& d% R7 t, O7 G( e0 u
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    4 h" Q: V8 O6 j& i; v4 f# n$ k! F<span class=C_BODY><span class="sense-block">/ P) U+ a) X2 |* @; O- p
    <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">
    : `6 t. G/ f. N$ g<span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>
    * C3 ^; r/ r% O5 k- h' m4 K<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>
    % m9 ^. b( }7 L& |' J2 @, L<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">- B& n8 R" S4 ?
    <span class=C_DCH>丑女</span C_DCH>
      I! n9 s4 F# }# t<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>5 C- p, t# y. ], c
    <hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />( l' ?9 w; l( _2 j# s0 U+ }
    <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>
    + Y( G7 i! v+ l<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>
    % |# p3 F4 X* O0 a<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>
    : e- v+ b! p$ U  S, Y' B<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>2 D% N  R5 r; i6 O- m& E% p
    <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>
    1 ^/ w4 ?' `3 u* ]& A: O<span class=C_BODY> <span class="sense-block">
    ! G. P2 Q# O1 Z! x" I% C<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">' ~! O; g1 F$ v" H' i5 g
    <span class=C_DCH>跟随;跟踪</span C_DCH>9 x( Q/ E4 ]) u  N: t  [6 ~
    <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>5 ]; a: F9 d; q, q7 A( u
    <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>
    , L6 x+ }! t/ i7 {1 i<hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />1 g. j/ p9 _, l/ u( ~% [
    <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>
    * H) i2 \6 _1 U; C<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># V7 m: w" s) q$ Q2 l1 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>
    " w' U8 p0 i: s# O0 {' w<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    ' d5 O, n2 X4 ^; ~<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>9 Z$ Z% y+ w9 v/ e4 {; u7 P
    <span class=C_BODY> <span class="sense-block">& x/ k5 ~. e- b2 Z( n2 v5 c
    <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">/ p/ C" x/ S8 c+ K) k
    <span class=C_DCH>困扰,阻碍</span C_DCH>; u$ J4 i8 \! I5 e- Z& x4 s2 ~# h
    <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>
    ! t4 b; O  P) h& N1 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>
    & g& L. O5 z) t* I* g& S8 s$ K</>
    8 B; P, F& f" Z# B给你部分demo内容。。。
    9 w! j0 Y' ~8 Q

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑
    9 j+ I# \. G& Z0 s$ D$ L
    bt4baidu 发表于 2015-9-3 15:36) t6 B3 _8 o* ^! p+ l) J1 l
    https://www.pdawiki.com/forum/fo ... &extra=page%3D1
    1 W. A, A# D3 ^# ~1 l0 q* {里面的动态功能都是 ...

    & |) o7 |! F/ a% Y6 @: `
    8 J; |0 Y/ a$ c已经修改了online demo,加入了对内嵌JavaScript的支持。; ?6 ~) s3 G% C9 i& Z5 [

    . q, Q2 P9 _4 S3 u" ^4 g+ x2 Z关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。* O7 E4 |) }$ ?9 D/ q6 K
    不知道你有没有兴趣一起开发?我想做成这样的
    / p4 x5 `/ @4 thttp://www.hi-pda.com/forum/viewthread.php?tid=1210672
    ( L3 c. \- F+ G' H" K' j1 v( H& |
    + C- V) g( I2 z/ z3 N# @7 I! e# h
    有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
    / O7 v4 |, m. c7 N

    1. * B- y$ Q. h3 W
    2. (function _my_code(window) {
      + \% _" ~1 }9 S* w( n
    3.    function u(c, n) {..}8 z9 r- e' X" a% F
    4.    ..  - f; ]- H  J5 V7 ~# a" N" A* M! t
    5.    function w() {..}
      2 e0 D1 S: P* Z& Y
    6.    var F = 0;
      6 @& l( ^5 _+ H7 p. }7 P) s

    7. 6 q1 N# m7 y+ @! t" r  [
    8.    function i() {+ ?, ^! K3 W3 ?1 K# F. e
    9.      if (!F) {
      6 p; u/ ^: p/ g, \
    10.        F = 1;
      ! F  q3 D( Z% O: B6 V  N  l  P. ~
    11.        w();  P! {8 d# k6 g) x; l$ y3 z
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
      ; K; }  M& y' ?# l. W+ u2 w
    13.      }
      + a/ i4 ^% {6 i  E8 R( E
    14.    }. N: P& S& c6 \2 |% w
    15.    if (window.addEventListener) window.addEventListener("load", i, false);
      . p/ [  Z( w- C" F3 U4 t; L
    16.    else window.attachEvent("onload", i);& \* ]  N" R) P' B! f7 L
    17.     " ^9 T  `+ S& s
    18. }) (this);  /* In global scope, "this" is the window object. */
      3 o- F& O; j! m9 a! H6 H) E
    复制代码

    + n8 M5 T  H5 {3 N3 o3 Y# b: b! ~. ~8 q5 j. T5 O' G
    具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。6 p' \5 Z! f/ O

    0 D9 C7 z8 b# Q7 d9 q1 `$ ?另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑
    ' |, e+ J, l* S  o7 _. }! ]& M" w7 x& F. q7 H7 I
      M* v! U$ M/ r2 E1 O3 k

    % j8 K7 s0 R, i, x- s4 E2015年8月5日 11:17:336 }+ j- W6 b/ f  a- ?# l
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。/ E4 X% @3 f1 o0 L9 C$ C% t8 b
    <del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>$ @4 {0 f' M. ]5 I0 x( C; w6 G& ^

    & n0 ^7 P: Z( B' }" y  y- f

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:12
    $ i0 p. O! P; p, ]- U想法相当赞啊,不过刚试了,貌似还查不了词噢。
    0 F9 S& v# H0 W. g) U0 r! e
    ' \/ P+ v( r4 _1 ^
    可以查字典。( A, [  b1 r' R3 c9 c' z4 q& x

    / c3 ~  `+ y+ z1. 需要先选择本地字典文件。
    8 B6 y( D9 n- H; p7 H8 {0 O# S2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。8 v0 k2 \" y* d
    3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑 + X* U( r! [- \
    Oeasy 发表于 2015-8-5 11:12* D6 K9 R, s7 n4 b0 r5 Y7 ^
    2015年8月5日 11:17:33
    : c# Y" j8 V+ }+ V( }9 q换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...

    3 K! ]0 Q. L! u% k9 F) `* A6 y
    9 G& {7 N0 E. ~, m7 V0 w4 P2 y4 ]出于安全原因,浏览器是不能自动加载文件的。不过插件可以。% W! b: v, ~2 a0 U; w. s4 p3 }* P
    ! W5 c/ G9 B4 j9 l
    关于排版,正在考虑允许同时选择CSS文件。
    4 x! o4 W/ ]$ C: G! u
    " V  O1 B4 b; [% T) T0 |IE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 1909 天

    [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>
    6 D/ i/ K7 A/ h& e- c! R内跳还是有问题。。。
    " k1 }6 D4 X! Z没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑 5 I# H; }! Z4 Y3 w
    peterdocter 发表于 2015-8-5 11:47+ ~- w4 |' l3 ]+ e
    dognoun | noun | verb | verb0 `) I- }2 T+ ^  f' u) m
    内跳还是有问题。。。
    : i* v/ |: z+ j, `1 H. V5 m: ^# s" t- ~没有再分析或直接替换成#C_hkz4
    . [; M" T7 K6 F8 m- \# t0 N/ H

    7 c- ?! j+ @  C# G谢谢意见。
    2 b2 ~/ H6 n1 C# w- O
      r7 Z- p2 D$ u7 g0 \' V含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。0 v" A5 K3 i. B1 _. [; Q/ h
    ; A$ o& k+ z. x2 i" O
    我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。5 c* _7 L$ {) y0 {3 G
    我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 1909 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:135 F, ]1 F. o/ c3 ~% K
    谢谢意见。" x8 A5 n0 m/ Y8 ]

    2 v3 o- M% n3 H& _8 L含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。

    8 I: Y- U: m2 r6 @https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:51
    % c# M. T7 }# p: m( t0 ]) X. L& whttps://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    ' g9 J' q  P7 M6 [0 Y+ B8 v您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:03+ A% o( A4 r5 u9 x' |+ {5 u: f
    可能此词典作者还没有公开过吧。。。1 h/ Q# a7 n+ I$ S. w( `
    # r, L. f9 C" I# ~/ a
    dog
    3 P8 @% `# i! _# W! J* e
    2 e- Y5 h* G7 Q% k  _
    谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。
    ) t9 _$ }0 Z* h2 a' D6 c( o7 m/ V" |! H% c; i9 p6 |! S. T' f
    您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

    发表于 2015-8-6 08:09:24 | 显示全部楼层

    # D+ @1 @! ^% Q0 ?7 P! q# A8 y% {5 x- q1 `
    感谢楼主辛苦工作。6 d) z: k; ?: R' t  T
    反馈一个。3 l8 G/ o% d9 B) Z! D* L8 e
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。
    7 b9 n' @0 Z5 q* }4 K如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。
    % E, a: o5 j9 X6 |; g
    / E7 k+ e5 {; X& ]& P$ s: g1 N; g
    7 x  `; L; l1 k8 p7 Q- b" @& E9 z" |
    ( _+ e9 o' X. v- k3 @" J; r

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑
    / i! l$ S( z' I- L( U2 N2 N  \2 Z
    Oeasy 发表于 2015-8-6 08:09) g/ x4 G, u/ U% g9 X
    感谢楼主辛苦工作。
    7 d% I+ s$ t7 k1 H4 Q/ O/ ^反馈一个。
    # k# H8 @1 A6 F0 \, e# e查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...

    - f( m. }1 a# |6 p+ d- M9 K+ m7 B/ R+ s- x
    这只是个概念验证/功能演示版,离完工还远着呢。
    ( B" p, N- }8 j& c* s$ [$ \现在专注修改核心,界面等有空慢慢改吧,
    . {' z# F1 G+ l2 \0 m- s' M0 |! l真希望有UI/UX经验的同道加入合作。
    4 q0 N' d( k' ~" h$ p% A  O! j) e4 \0 Y( R' P  \6 G4 v! D
    具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:34/ s  Y" s# G7 A% e: R$ ^( u+ d
    语音方面,建议支持mp3格式的mdd文件。
    % h/ F: E3 c% ~+ f3 q8 e) y# v" B, i7 {
    已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。9 h6 t2 U8 t$ w1 s6 |1 H) o
    1 J3 \0 u/ C: r4 n
    不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 1909 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41
    * l* I1 |8 _1 h# i; b, j谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。& j3 A1 Y, y* R; k  z4 s
    $ w1 f' R- |$ O
    您可以在顶楼提到的MDict on ...
    + ?" h# Z3 A% w- Q8 j; x
    不错!不过还有一个bug9 C5 z1 g  Z3 w8 j3 D4 P# D" y9 E$ w
    <a href="entry://dogged" class="C_REF">dogged</a></
    - p2 ~9 r0 q* B没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑 ( A$ \( u' c$ e4 p: g: F$ `
    peterdocter 发表于 2015-8-7 13:03$ M, B; R9 |) D3 g8 m5 |
    不错!不过还有一个bug5 q. h! D- z, R2 b
    dogged

    - C4 v4 {; s( d; t" _9 Y5 p0 k7 ^( u, ?/ F! Y6 ^( l: z& H& ~5 Q" w/ I
    这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。5 Y. r9 p4 F% J$ O3 M3 H3 G
    ( o1 d$ V. P7 E8 X4 X2 f
    当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    % O7 k6 A) S9 g4 m/ d" u: |$ p6 T2 u
    不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。6 Y# `0 [7 L- |
    2 q' v9 N  g8 _% [! P' @
    已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 1909 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:11
    5 Y' A% }1 c* m% ?这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。
    - V. N0 ?% C7 r( P! s9 l; e2 l5 [; J* N1 R' R3 h6 p
    当点击形如 entry:// 非页内跳转 ...
    1 z, c- o  f6 e* d% e' G: O( s
    再给你demo调试,而且可以连跳了
    ( f- O1 b0 w& d& [  o

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:18# Q% f  l, x/ b4 i# d" F
    再给你demo调试,而且可以连跳了

    ) p3 ~  p; [2 u8 d我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。, G0 w9 F, R; _5 Q# K

    ! W7 {; h! R* a& K" R# t% y4 [另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?
    ( r) b4 }, _. e! {3 Y! u+ X3 Z. A" Z1 x3 x0 k) C
    dogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。- Q2 n1 k) J4 R
    - G& f/ L) v( I; @# `" Q
    回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑 . X) Q8 x; S% N' B: F" b& N. _

    2 [  I( P& t- b& k1 U3 Y2 N支持!
    6 J3 \* h5 C: @原來樓主就是因為Chrome插件而開發的
    % d( P" i; L% Ohttps://github.com/fengdh/ChaZD* k* g( {4 m7 I" F% m' y# d/ Y

    3 A: r: p' @0 B: w3 r4 }) M' W今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:51
    4 l, v+ s3 c8 F* W词典里面有javascript脚本的话,似乎解析不出来
      R. o5 z2 M. \  a" O$ K( `4 F
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:27" d6 l4 d# H& K# X- u6 [3 P
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    5 C/ X& V% Y! @https://www.pdawiki.com/forum/fo ... &extra=page%3D1
    5 L6 y, ?. ^1 ]: V里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-19 09:18 , Processed in 0.072086 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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