掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5364|回复: 35

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

[复制链接]

该用户从未签到

发表于 2015-8-5 11:05:40 | 显示全部楼层 |阅读模式
本帖最后由 fengdh 于 2015-8-5 12:49 编辑 0 t3 m6 ~8 r5 @
) [# Y: `/ Z  _: \( s
我并非MDict深度用户,不过因为想为自己开发的浏览器插件提供本地离线字典功能,结果用纯JavaScript实现了一个MDict解析器。这个开源项目现在仍然开发之中,大家可以去 http://fengdh.github.io/mdict-js/ 围观,欢迎提出建议。这仅是一个在线功能演示,还不是一个MDict在线字典的完全实现。它没有服务器端,仅仅通过网页形式提供所需的Javascript库。需要用户从本地选择mdx而且可以附加一个mdd资源文件,因为不会上传服务器完全在本地解析查询,所以几乎是瞬间得到结果。现在可以支持图像/语音/简单跳转/模糊查询/mdd内置样式文件等等。
4 Z( e4 e# O; `  m$ t
8 C8 V0 ~( b/ D我用手头的LDOCE/OALD/Webster/American Heritage/WordNet多个版本做过测试,字典和资源文件支持词条索引加密但不支持需要注”册-码的索引头加密,支持文件压缩(gzip/lzo都可以)、词条链接、语音(wav和spx,需要mp3支持吗)。暂不支持超大文件(>4G,离线维基?)。暂不支持Stylesheet替换(还没遭遇过使用这个功能的字典,哪位可以提供个实例就太感谢了)。只对英语和汉语词典测试过,不知道其他语言有没有大问题。2 F6 X5 S7 j& P. G: U% j

9 V, U# l; j; I1 Y; Z. X我打算用它来实现支持单词管理的在线阅读辅助插件,和WordNet可视化字典WebApp等等。将来可以考虑用nw.js/electron/NativeScript来实现跨平台支持,或集成到如多看等基于WebkitView的应用。凭借现代浏览器的功能和Javascript,比较容易开发和扩展很多有意思的功能。比如,复用其他字典的语音资源,甚至给任意字典加上语音或者替换不甚人意的版本。更容易定制字典式样等等。希望大家能提一些有意思的想法,希望和有能之士合作。5 k3 E0 R( @6 t, E$ w! S
1 s$ E/ ?) m* l
忘了一点,暂时不支持IE(9-11,因为缺乏TextDecoder支持,已经找到polyfill有空加上),想来Windows10的Edge浏览器(号称全面兼容Chrome)应该没问题。) O: R6 ?/ m6 H5 Z; O

( b$ r! Q) i- q& G5 N2 Q谢谢。7 L, L3 O% C3 h! a
6 P  Q6 x: V! H

  w2 W" q+ n( t! `+ K5 a8 i$ t. _/ W) h7 A( l% F% n% {  Q& i% e
' f" C2 @2 ?& k2 z' ?) z" K
5 U- C4 r% P' M  S7 H
# C) F* v8 Z; N1 Q

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

该用户从未签到

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

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:049 N9 ^# }+ B4 F
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...

    - e1 m+ ~, c9 y+ y. |! r, N: B. P/ {8 f# i$ V& n
    可能此词典作者还没有公开过吧。。。  D! L; f: v, A( W

    : b( `7 J0 N& z6 ~) g5 Ddog- u9 \" w% T! a! `
    <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># h1 m9 @* P/ j
    <hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />
    ) h0 i$ d& u$ G! K0 [6 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>
    ) T3 G; z# g; k4 v. g2 G( d<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>* |) f; ~" `% i* r* O9 e2 l1 |
    <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>6 G. g! v8 L& G; |6 W8 l$ s
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>; j4 r9 O$ w3 o! v
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>% u2 H$ X' _- U7 a8 b/ R2 T
    <span class=C_BODY><span class="sense-block">
    % P9 {7 z. H0 i0 K+ L' W( c( l<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 H1 Y. l! b) N0 G* Z$ G1 B  y9 X
    <span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>
    3 f4 M- ?. s! t3 q) G<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>
    + W) ^0 P' _0 s  P<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>
    4 \4 {/ A8 L0 Q8 o4 g* ?<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>1 }; b) x* P) a7 X
    <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>4 w' t- G& ?9 D% [  ?5 i
    <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>1 h) P3 e! X+ Z, Y* o
    <hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />
    ! V/ n, ]6 n1 p$ B2 G<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>( O9 X+ a, @+ A/ {1 N* [
    <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* B! P' c: _  H4 y  O+ Q6 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>
    ! C9 P4 m* |2 u<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    + v) J% _7 d4 [<span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>8 g5 h0 a5 ]. n1 M' v$ V$ M1 D
    <span class=C_BODY><span class="sense-block">$ o1 o, Z; D  z! r! o
    <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">
    / q- A, q; S- Z  S! j<span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>( o3 S7 ?+ U' A: K! k8 ~* n" B
    <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>
    4 v. _) n& ^+ W/ Q; a, X) w<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">
    . H  Z3 f  P/ d& z' y8 J4 q8 U0 s<span class=C_DCH>丑女</span C_DCH>
    - P9 @2 ~+ Q! b" A<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>
    , l) B5 t( X5 I5 L: @0 x<hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />
    & o3 o5 o1 }2 s" ]0 N: s$ p<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>( }) @3 i7 ^4 }% o
    <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>2 \3 _& m( A) H( X: I7 H5 j9 P7 V5 z
    <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>* ?" \( I  W4 z7 u2 J! T. |8 ?' c1 O/ T
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    ( e  x' F8 F, r9 N- z! D<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>- b% M* B$ ~9 H5 ?) j
    <span class=C_BODY> <span class="sense-block">; \; ]7 Y: l& I- f5 C! m
    <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">8 Q7 W* ^2 R5 B. q& u5 E5 m
    <span class=C_DCH>跟随;跟踪</span C_DCH>+ q( X9 B9 R0 B0 Y6 ]6 V8 H) X
    <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># b; I7 v( m4 @5 B
    <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>
    6 X7 j* V& H4 N/ e<hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />
    ; m' a9 U# \$ T/ W8 B( `<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>
      s2 K$ X/ K5 d) v( M5 V<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>1 j! B3 K$ g5 n, y/ Z* Q
    <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>8 R0 i# X( K! n0 X
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>* Z) G) b  L$ i- m% i+ k# T4 b  m# 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>
    : y1 c) r+ _! q<span class=C_BODY> <span class="sense-block">
    - V) d2 l  a% 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">& I5 @* L4 }9 q% u
    <span class=C_DCH>困扰,阻碍</span C_DCH>
    4 M% y/ T6 c0 {6 d5 N<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>& C2 t8 B1 }  H" `, U
    <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>
    * k; w. t" J" ]5 Z( T</>  H$ b- O) X: D5 e  Y
    给你部分demo内容。。。
      V4 L) h1 g" ^: o( t( o+ ~# E+ Y* _

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑
    ; l3 h# S0 P5 S1 q
    bt4baidu 发表于 2015-9-3 15:36
    2 i& d8 H2 |4 k8 Mhttps://www.pdawiki.com/forum/fo ... &extra=page%3D1! \1 u9 }" W* Z
    里面的动态功能都是 ...

    - p5 X1 U2 V. t6 p& h( ~, h2 q
    ; I* G, L. {( s$ p: H2 Q已经修改了online demo,加入了对内嵌JavaScript的支持。
    5 V0 P2 ~6 ?* W% z( ]0 s, d! |. C9 M1 z0 z; n5 w) }, J; k: l5 a" L$ p
    关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
    4 ?8 ~3 C- D- c不知道你有没有兴趣一起开发?我想做成这样的
    ; i' U' [, |8 w# Dhttp://www.hi-pda.com/forum/viewthread.php?tid=1210672; e! k+ Y2 }' ~, T" F6 ~( e, O* A

    $ q. s! i( l) i& D$ D- N3 V: s. x: _' y, i- s+ O( {$ j
    有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
    9 }: d, H' H# _) i$ Y4 u. B

    1. 3 U& F; D6 }2 I+ p8 E
    2. (function _my_code(window) {: m2 c0 {; W8 q2 x
    3.    function u(c, n) {..}/ J7 h' _6 B& Z5 j& r3 f
    4.    ..  0 F0 ?0 M1 m* i9 i% S
    5.    function w() {..}
        q) N) x' S) n( P5 L
    6.    var F = 0;
      : ?+ O7 S8 T% [6 |

    7. , g; @. }- o5 N  C  Q2 r7 Z
    8.    function i() {
      ' j' ], {! @3 N8 K
    9.      if (!F) {
      * v' x3 N2 O, v7 n1 G
    10.        F = 1;% ^$ B7 R- \! D, f) e
    11.        w();
      6 ]% N  D; a  O7 z7 T% z
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);) K5 Y" i  l1 b- J' V! v6 o: x
    13.      }; E- a8 s* ~- X5 |
    14.    }
      0 t" D4 c! W, O+ Y& z
    15.    if (window.addEventListener) window.addEventListener("load", i, false);: h: J, _# k$ u; `8 o
    16.    else window.attachEvent("onload", i);
      % j$ O7 i: z! e7 g* X
    17.     3 I- S6 d) X% }( |$ i
    18. }) (this);  /* In global scope, "this" is the window object. */& c) M$ V' }; [) T; F. Q2 K$ y: I% ~
    复制代码
      j& B0 c! d. `3 N( q, d$ f
    & G0 J- _& }0 y- V5 e, H) Y* |) l
    具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
    # p  g3 h: y* R5 B' p  a7 r; I# W/ i) K  V
    另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑
    ) Q2 D. {0 A0 H
    ) I6 R7 [$ @6 F* c
    3 Y# p3 H" z$ {3 k5 O
    3 Q5 _6 j( U2 I; [9 d+ O( f' ~2015年8月5日 11:17:339 q  N5 r  [& O+ l- S
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。; x3 `+ f/ O: V$ u% @4 f
    <del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>; z* o, k2 I: H
    ; `2 }, R$ f& Y8 j1 S% j

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:12) D0 I  @; M4 {% {* ~; J
    想法相当赞啊,不过刚试了,貌似还查不了词噢。
    ' j3 T/ _+ |8 l6 b( m
    * z- T! @5 k8 V9 S. M6 e# t$ V
    可以查字典。! k9 W! v1 s6 J# q. N4 _
    & f. v- `' A& V: C
    1. 需要先选择本地字典文件。! @& B& U# ^$ s4 ^% `: v
    2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。8 `; i7 D' V$ |# Y1 X) ^3 G
    3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑 & E3 t' v3 V9 `" ]1 K
    Oeasy 发表于 2015-8-5 11:12, l3 F: ^/ s; I3 |3 S
    2015年8月5日 11:17:33& n, S# P0 S7 Y6 l  i
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...
    ( Q' R' k# t& ~" p% |

    ! q2 h: N9 M1 \( D0 \2 T出于安全原因,浏览器是不能自动加载文件的。不过插件可以。# ~8 q8 t3 g$ l
    , _# F# p; M$ G. ~; |" P
    关于排版,正在考虑允许同时选择CSS文件。
    0 N9 z! N. |& G# ?" R. H1 W  Y1 r  h7 r. t, o
    IE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    15 小时前
  • 签到天数: 1935 天

    [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>' V" D- @9 |# k/ a
    内跳还是有问题。。。3 Z% M4 ?; y  Z! b- H
    没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑 " C" Z' T% v% v/ M
    peterdocter 发表于 2015-8-5 11:476 j. g2 m* B6 t6 K3 z7 V
    dognoun | noun | verb | verb
    ! {0 J4 b' H6 y" K0 P' x8 i内跳还是有问题。。。
    7 _0 l$ W" I( y# {没有再分析或直接替换成#C_hkz4

    3 N4 z+ ]1 c: ^% n" a: X# Z' n( ?; G% O
    谢谢意见。
    ( n( w" W* |+ ^$ [- z) y
    ' J  V. v3 @0 r" l. s: d/ o% B含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。* x% A7 C1 Y8 L: P7 \
    % A' D" y. J8 C- I
    我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。
    : l. Q2 {+ D0 o% H: {5 p" X& {我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    15 小时前
  • 签到天数: 1935 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:13
    6 a7 w6 {: L$ Z1 K! q谢谢意见。* Q  j4 ^' F+ ?4 Z

    , u% P: w# S& S含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    ( z% V/ \1 q. N1 n' Z: K5 I
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:51
    ( m' U+ ]4 k% ohttps://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    5 _/ G$ Z* y7 K' ?9 P' U( x您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:03
    6 S- v9 J3 n) e) Y9 s可能此词典作者还没有公开过吧。。。
    - |9 ^$ m* b* x1 V6 E7 f4 X0 f
    + ]$ J4 M: ~3 R- C" Vdog
    $ I: Q4 X" L# D$ r  F4 u* |  E
    3 @0 n( B: R- }
    谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。& I; P1 @4 |& l

    " }% Y  k9 T$ R# n4 @* o您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

    发表于 2015-8-6 08:09:24 | 显示全部楼层
    * Z5 Y5 i5 [: q- V" S

    ! n. O4 y0 g* h% \, |感谢楼主辛苦工作。
    : F- o; Q  t' ~' K反馈一个。, F( [6 x, A+ l1 Q3 f/ t
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。
    5 A+ \  S# _" d9 _8 P' n如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。
    9 E  [: T0 h) x( `% i- \. x0 T! W. ?5 `/ r% K% e$ U! w2 X
    0 r0 I% K* \! V7 x" y

    # X7 N* F  z) z& p7 d

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑 ! M3 l) I! h! A  M9 n
    Oeasy 发表于 2015-8-6 08:09% ~' w5 q' ~& \: Z( V0 J$ i
    感谢楼主辛苦工作。0 o* ~- c* B$ B: V, \/ `4 K: a+ g* H! \
    反馈一个。
    & M" q5 ?5 [: k5 w" ^4 R0 B查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...

    : w" o; S3 q5 P' M) g
    & |$ U; n/ ]: S/ d这只是个概念验证/功能演示版,离完工还远着呢。
    " T3 h5 w2 _% [" J7 W- C( _现在专注修改核心,界面等有空慢慢改吧,
    ) s, K9 Q) B+ n, Y真希望有UI/UX经验的同道加入合作。/ t$ g- X, o* l# q" o
    $ g  Z9 k) M2 a
    具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:349 L4 l' ?) {3 l/ J
    语音方面,建议支持mp3格式的mdd文件。

    6 i: G( L% R: W6 a& K已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。
    & \. p0 K2 B7 `. z* ~: s. |* k2 U) H% d# j) v1 `- q. ?
    不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    15 小时前
  • 签到天数: 1935 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41
    6 \! ], [& t( z/ ^' `谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。
    * t3 ~4 L* N/ ?( v6 Q5 N" G7 T: Q! @2 k* Q* W
    您可以在顶楼提到的MDict on ...

    7 L2 i4 ]( K1 ?; D不错!不过还有一个bug
    9 z# z2 ~3 {3 P1 a# K9 f<a href="entry://dogged" class="C_REF">dogged</a></4 j. b1 c  v- y: g6 j+ s
    没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑
    + P/ |3 q0 J3 E' H, T2 Y
    peterdocter 发表于 2015-8-7 13:03
    " _2 P' J0 F1 y/ L+ g不错!不过还有一个bug
    " _9 }8 b) m; f: Mdogged

    / V2 v4 {+ d: H( {4 A; r: W: F0 z% e$ |. x' c& |8 v4 y
    这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。
    & |+ Y3 U$ @4 \" |2 O6 j. h2 p, k5 b, J0 a4 U
    当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    # t; P- M  Q! G+ ^' h, P6 g1 {6 w9 r4 F* d5 i4 _9 `. G$ v
    不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。; A% }. p" a) J' z
    7 A. X7 {  V, t# r
    已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    15 小时前
  • 签到天数: 1935 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:11, A* d% G7 _& f1 u2 R7 |
    这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。& m5 L3 c0 W% N; @* f! a* M

    $ q7 g8 r* Q. x当点击形如 entry:// 非页内跳转 ...

    ) N/ D6 c( f! M0 `) z1 T' X再给你demo调试,而且可以连跳了 % M5 ~, w. {) x  M1 A6 F

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:18
    8 @- k' [' _0 ~) r/ K4 H% i" P再给你demo调试,而且可以连跳了

    + h. l; p) D# K( w" W我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。0 M1 F' a2 s. q! r

    ( |: t% M7 _' A& I" U, l另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?; a+ d0 b# e$ V9 Q" x5 @; D1 z
    # z% p3 X& X. _. j4 s* r
    dogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。
    9 s: ]& A# X5 B: y5 F3 q
    ' f: W8 q( W* Z0 m4 d回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑
    & L8 n1 B1 ?' ]8 e0 D
    2 |8 v$ |# e! w# T5 _1 u% E支持!
    5 K, y% z$ p! D) E2 Y" i  v$ v原來樓主就是因為Chrome插件而開發的
    , A- Y4 x  P$ b; w6 Xhttps://github.com/fengdh/ChaZD
    . ^8 s9 y" \, r7 `5 p: Q- g4 \6 Z2 ], V4 K: p
    今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:51, ^- h5 x5 A+ {/ k
    词典里面有javascript脚本的话,似乎解析不出来
    7 r0 d! S/ H/ ]' H
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:273 m% p& L# G% G) L; x5 L& b' C
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    ( [# @" m, [% e" B) C0 Thttps://www.pdawiki.com/forum/fo ... &extra=page%3D1
    * {: U7 j- f) d里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-15 23:51 , Processed in 0.062867 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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