掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5252|回复: 35

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

[复制链接]

该用户从未签到

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

$ m! G+ B$ c8 X; T# \我用手头的LDOCE/OALD/Webster/American Heritage/WordNet多个版本做过测试,字典和资源文件支持词条索引加密但不支持需要注”册-码的索引头加密,支持文件压缩(gzip/lzo都可以)、词条链接、语音(wav和spx,需要mp3支持吗)。暂不支持超大文件(>4G,离线维基?)。暂不支持Stylesheet替换(还没遭遇过使用这个功能的字典,哪位可以提供个实例就太感谢了)。只对英语和汉语词典测试过,不知道其他语言有没有大问题。# b. R. C: D5 P/ D
& G' R! T- |* h! |
我打算用它来实现支持单词管理的在线阅读辅助插件,和WordNet可视化字典WebApp等等。将来可以考虑用nw.js/electron/NativeScript来实现跨平台支持,或集成到如多看等基于WebkitView的应用。凭借现代浏览器的功能和Javascript,比较容易开发和扩展很多有意思的功能。比如,复用其他字典的语音资源,甚至给任意字典加上语音或者替换不甚人意的版本。更容易定制字典式样等等。希望大家能提一些有意思的想法,希望和有能之士合作。
7 x/ T) X) ]6 O9 n* h- Z2 S! }4 c! B6 v7 S6 K, {% p
忘了一点,暂时不支持IE(9-11,因为缺乏TextDecoder支持,已经找到polyfill有空加上),想来Windows10的Edge浏览器(号称全面兼容Chrome)应该没问题。: |' i. |! a* ~9 u

) ]7 u* J- C& G' S& ~0 G谢谢。  J0 Z2 ]0 X% y9 {3 b1 b' e

" v* g, L# A7 \& k( A; s
5 o3 |5 G. B. y* F$ c2 h, v# t1 R' E: g8 x
. S: H0 ^: x- `/ j  z3 d4 O
0 e" ]; i- x* D! r0 r' Y. c
( H* w1 [3 A" I6 t  ~

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

该用户从未签到

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

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:04
    , B; T8 G" t9 A0 y$ L$ e! m* D: t您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...
    : a9 i) i1 K6 w! c
    5 S4 B4 Q: f7 x0 N' x
    可能此词典作者还没有公开过吧。。。# L9 I" W4 [; W  X- U7 j# B
    ( H* c+ q* r4 \2 m
    dog
    % \$ R: R5 E; \3 @  z! K2 U2 N. M<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>
    9 S% v  x" B5 I0 T4 ^<hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />+ X; `- w' g1 t% e7 _' Y+ m
    <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>2 b6 h' h4 t6 M7 _8 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>
    . Y6 f/ a" @- r+ F! 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>
    ! |/ O! p" J( L" V<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    / D; n, a* R# T<span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>7 B0 d$ i7 [; I3 s
    <span class=C_BODY><span class="sense-block">
    , @( \/ b  L4 J. ~4 e<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">
    5 f0 l; @1 e  o6 i<span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>/ X. q, z( |/ d1 @( F! n
    <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>: B& J/ V6 ]7 K& {3 E" s
    <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>- m' m: j! V. X1 V: ?' z: h
    <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>. Z0 V, j: \7 j
    <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>
    ! r" M# b4 @3 `<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>
    * e: Y* o) S3 R* C, Z<hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />
    6 P7 ^: Z) j  {! J$ X9 C<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>
    & D# C, P( _' J# J<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: b5 y0 C( w<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>
    & V* g7 [$ T! L<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>. K2 Q& g8 k- F! x6 y! p
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    ; e; L, m  S) P! N* q# g0 X<span class=C_BODY><span class="sense-block">
    + U! g! ?, s% I. F7 D<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">) r( R5 F6 Y! ~$ H
    <span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>
    ) a9 e; F1 ^  p6 c. d8 @<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>0 t6 O# t+ K, {$ a
    <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">, P& s( h% a6 ^& M
    <span class=C_DCH>丑女</span C_DCH>
      V0 w# ]- M, H<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>  j6 N+ q3 t5 v; p" h6 ^
    <hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />
    # b/ `; C- f0 @2 ]' c8 x' |<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>
    4 D% n$ S( b# w$ {, T<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>. L4 {% `# {& ?9 O2 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( h# n% F3 R5 c( ^<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    % J9 }0 K7 h* L8 W1 M& F<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>
    , `' O# Z- m3 K" }& Y<span class=C_BODY> <span class="sense-block">
    2 {: J" z& |( _5 D% h: z<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">
    / [, M2 y& K9 Z# A* u<span class=C_DCH>跟随;跟踪</span C_DCH>
    , G9 _- w' Z, o. S9 U6 w3 G<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>9 j; H* W8 R5 T+ m3 \( p% F
    <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>
    " V6 Y$ b) c5 b6 Q. n<hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />
    . }. b2 t# T8 [<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>
    7 @% z' d! y8 r, e7 t( ^% i2 X2 Z<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 P( S- F4 K
    <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 h1 A7 S$ e* H2 t& E( e<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    & t7 Z" u' y9 A) m1 M<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>
    2 ^; b7 l9 Q' O, k<span class=C_BODY> <span class="sense-block">0 K1 Z0 ]; K. L7 v5 {5 d& V
    <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">, b" Y+ `* q9 P- A3 g3 `
    <span class=C_DCH>困扰,阻碍</span C_DCH>
    8 ^& y/ U, W7 _2 T! V: W<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>
      ^- n" |, f* K<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>3 P( g4 v6 x7 q6 e# t* {5 d
    </>! r2 S6 y! P5 x6 K9 {% O
    给你部分demo内容。。。
    6 |2 u  D( K  Z" p- s  O' q

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑 " {" D, }) W9 d  Y
    bt4baidu 发表于 2015-9-3 15:36
    : Q- |7 ?9 D  s0 |https://www.pdawiki.com/forum/fo ... &extra=page%3D1
    % a1 b& h7 L# k2 M. I9 X  ]4 E里面的动态功能都是 ...

    # {- d) V' ~5 w! U% ]
    8 K5 w, o% d9 @. d2 z% v已经修改了online demo,加入了对内嵌JavaScript的支持。+ ^$ p4 m% g! I8 r+ L
    0 L4 o" e6 L+ G5 r3 C1 a
    关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
    . a! D# U) _2 i3 _% v% ^8 {不知道你有没有兴趣一起开发?我想做成这样的
    * H' v- s& [0 q+ q2 @http://www.hi-pda.com/forum/viewthread.php?tid=1210672
    6 Y* Y9 n) {1 E
    8 J/ Y; ?. ~4 Z6 L
    0 {+ O! ]& {, `* _4 Q2 a' M& n  h1 c有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:: V, K/ L3 `  D" e/ g4 x* u

    1. + a" I; O1 n2 u+ s& r
    2. (function _my_code(window) {2 t% c7 D2 x- y2 Y. h/ {1 P4 U2 n
    3.    function u(c, n) {..}
      5 C0 l8 p& {" s  J  {0 `% V: z
    4.    ..  ) W5 S+ L3 m& @+ G& f
    5.    function w() {..}: _4 c5 v7 w! K9 e! ~' \( P# ]
    6.    var F = 0;. A8 P1 P6 i/ I* {8 m' f( x) _# o

    7. ( O; }# c/ g$ C. X6 ~( H
    8.    function i() {
      . z" d: z+ p. {( p
    9.      if (!F) {
      . ^$ `8 y% Q& ]1 V! n/ E0 E
    10.        F = 1;# m  P0 @, q1 @1 z: U& n1 p2 F
    11.        w();  O( c/ `. a5 H  P- v  W0 f: G
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);8 s& n" x: W: N8 @: q
    13.      }
      ) D3 Z% ]. O3 u4 ^$ `  a' m
    14.    }
      & w/ S# N/ x2 q5 R
    15.    if (window.addEventListener) window.addEventListener("load", i, false);0 e! X6 W* `9 V( |) z4 V4 |
    16.    else window.attachEvent("onload", i);: D: B8 G8 X) w1 @+ K. C2 o" ?
    17.     3 ~- h0 r& W6 a5 J
    18. }) (this);  /* In global scope, "this" is the window object. */
        ~0 I' w) ?1 V+ i( ~) F( O  w
    复制代码
    - ~+ H, g% f3 [8 f

    7 |) d; x. l  j4 j, F4 j具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。3 S9 e1 E: Y5 I# K% |# C
    6 G6 C8 k- ~0 q; V
    另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑
    . a" ~6 {# u) p0 E+ _9 `( `
    0 \7 g! m# a3 ^7 x7 f% p: z
    ; w3 D2 L) }( x; i2 V
    1 {$ N) s* s, s: B) p2015年8月5日 11:17:33
    , ^+ k# B& V& `7 M6 k2 U+ m7 @换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。
    . @- }4 K! T7 T( o7 ]3 I7 l) R7 t' |$ |<del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>8 w% E. ]; ^4 F5 W: K# ^6 v& Q

    , w3 Y$ X; n9 k4 q/ |% a

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:12
    3 t6 O, E5 F" c& d8 p7 p8 X6 z想法相当赞啊,不过刚试了,貌似还查不了词噢。
    ; |) F# s  S' |( `% h
    & E5 w( T( F" o
    可以查字典。$ x( d3 [6 L" s  q2 r: h# j" n

    7 U5 _% A: d! }, \" i" C2 @1. 需要先选择本地字典文件。
    * @( Y2 o+ i. g4 }2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。: q+ ^0 o) m3 n' @$ f; b
    3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑 2 L) w8 {% }4 Q8 Z: c
    Oeasy 发表于 2015-8-5 11:12
    # p2 `) n7 @+ h1 V2015年8月5日 11:17:33; n' ]3 X7 h) I& W
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...

    9 w0 S" Z4 U1 p* X5 h  ]* k0 O5 {6 d
    出于安全原因,浏览器是不能自动加载文件的。不过插件可以。
    1 @- f9 G( _# ~2 c! m
      `3 O$ t, a$ @1 j1 }' b& k关于排版,正在考虑允许同时选择CSS文件。5 n4 l3 K* v5 K% l* f/ K, p
    9 Z" b* o9 E( c& ^
    IE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1916 天

    [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>
    ( L8 O7 t# r3 ~7 m5 x) L7 P内跳还是有问题。。。  H' k: E; ?) c- W4 N4 V) @
    没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑
    , {" k6 ~% t: C2 E  z* D
    peterdocter 发表于 2015-8-5 11:47
    . q8 I2 y/ F- A8 d2 Xdognoun | noun | verb | verb% A& m5 R3 G* v; W! e9 }+ C" |
    内跳还是有问题。。。( A% V- e0 V/ z! R  v
    没有再分析或直接替换成#C_hkz4
    & V# ~+ ^* ?' u: B4 @& H1 l: D
    : h$ ~4 ^0 ?# r( q" B3 C6 _; u2 P! c
    谢谢意见。
    . |& ~4 E/ u3 e) E) a5 O9 W; E
    # \( a$ {! j% F3 [+ B含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。! U! Z9 q8 d! w  V: ?& |& |' F
    ! L& T! k) ~) f8 @  u6 h8 s
    我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。
    * f; N: `5 D+ B/ H1 y我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1916 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:13
    * I% v; O7 q4 c$ y5 A$ m% L& M谢谢意见。( \+ ^  L; s4 L

    ! o( R& ]) z) b$ [含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。

    " C9 E! ]% m( x  jhttps://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:51
    4 V( {! e4 w- q/ z/ r" C, g4 dhttps://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    ' V" e% j# f; W2 m! Y" y$ A您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:035 t! m. i+ [0 w2 L0 R  E- e" a
    可能此词典作者还没有公开过吧。。。
    9 D3 v1 b/ I- L0 A: S1 ]+ _2 R: J0 _6 l# O3 |) e
    dog

    ; A6 b5 U) ]2 W. z& v0 n  q- C, S+ W" B, [3 o% s$ j; G) W) k  o
    谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。6 [' ^. f4 [' s* x0 s, D8 K

    0 y) F* C; M6 P! q8 p您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

    发表于 2015-8-6 08:09:24 | 显示全部楼层
    / F: R  f4 m  J
    & R1 K% x7 ?; }6 {8 F2 ~
    感谢楼主辛苦工作。- h, o* y. w2 Y5 L0 G+ N% M
    反馈一个。; U' b  f1 }/ p+ h; `
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。2 D% K. r6 _1 d0 Q+ w2 \2 t
    如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。) x9 P4 c; l* `" h
    2 e9 ~" _$ S) P- t2 v8 [' z! |

    1 q( @. u" R% }+ b: n! z
    5 I- l- c+ M  o% ^% e3 c

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑   t' J. X; A5 g' W8 Q2 l
    Oeasy 发表于 2015-8-6 08:09
    ( c7 @# M6 I7 p# f/ x; f- H4 L0 D感谢楼主辛苦工作。! x7 V/ W% P% k5 W( G& K5 r9 v
    反馈一个。/ C4 k; m: w. Q% G: Z) l. a4 i% |# z
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...
    0 Q; J& l+ t" C# b# B: ~6 B
    1 m& ^- {. b6 u. @' T" Y: \
    这只是个概念验证/功能演示版,离完工还远着呢。
    : ~( q9 a$ Q" D. ?' Q7 d% H) H现在专注修改核心,界面等有空慢慢改吧,
    . \6 O2 s6 I3 z" j9 E* r& ?真希望有UI/UX经验的同道加入合作。/ x! ]6 P/ v' Q1 u* o1 N$ _$ \
    8 O" K: R. x% h
    具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:34
    % @0 e# W" f& }+ m: T+ l+ F语音方面,建议支持mp3格式的mdd文件。
    ) b, i! y" [$ t/ B9 I& K8 I$ n# x
    已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。
    4 V5 D, m. R' U# p. t  [) J0 d* E  ^. I+ P8 ]) v. m
    不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1916 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41
    - y! G* y% q+ D: X$ s$ A: A谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。4 N/ h1 z2 h: u( S" u! X! \

    & X  P2 d& @* {) _" Y- O/ G+ x% A6 `2 i您可以在顶楼提到的MDict on ...
    ; \( Z6 ]6 ?/ ~! f4 F/ r" Q
    不错!不过还有一个bug" P8 w0 M1 G  k/ m
    <a href="entry://dogged" class="C_REF">dogged</a></" y$ f4 s3 s7 a" ?$ f
    没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑 ! _2 N7 p; i" ^1 ]3 a' i
    peterdocter 发表于 2015-8-7 13:03& [; i& w% n! Q* v
    不错!不过还有一个bug& {. j/ K7 d, r# o7 K$ s/ m
    dogged
    / d/ k2 {5 r# u" b& r, v& d

    " `3 }0 _9 q) @$ B) K8 g4 @1 W这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。6 Y0 U9 u. E* |$ j$ G# P6 X3 p

    / j" i9 @% i4 ^: ^当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    $ Q  a  j2 d1 Z% W% X2 ^2 g5 I! c- x# x9 p& W
    不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。
    ' N$ f  U* C5 x! L" d; Y% I0 Q- p) S* r1 Q/ l
    已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1916 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:117 e4 c6 v6 ^8 B" J7 |2 B
    这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。
    9 J5 B7 p" ^7 B3 [, B+ f: C& n1 {) e1 E7 ?& {9 S6 |8 V* M
    当点击形如 entry:// 非页内跳转 ...

    & j/ u. f/ t, Y再给你demo调试,而且可以连跳了
    # u8 v+ X& u  Q) l& w

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:18
    * a2 l) a0 d5 Y再给你demo调试,而且可以连跳了
    4 V) i# M, W4 m" N. `# Z
    我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。  W, D7 \9 H9 A* q1 ?

    $ r! ^% q2 j4 g$ X另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?4 J$ n4 s: x5 C5 n- y5 K( \- q

    ' j, K' V! X7 U$ Y1 O5 d: ~, Jdogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。- p' k9 I# a5 t0 R

    - V% Q" K/ R( F# v7 e回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑
    : e4 R, k* e% \' G3 N1 M' `# M$ L) \& R' M" o
    支持!
    , r6 B6 ^/ [: y0 V- m原來樓主就是因為Chrome插件而開發的, {, V# H& |, X$ s0 O/ R1 B
    https://github.com/fengdh/ChaZD
    % A8 M2 w$ c, }5 v- Q9 u
    4 X4 Y' n( C' N- {" W7 p9 \( w今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:511 G7 r6 i/ o3 d( I9 i# N
    词典里面有javascript脚本的话,似乎解析不出来
    * Q" S1 I/ _0 u. S' e
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:27
    , _# K7 q1 P5 a, b5 r# X原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    7 o7 W  S* Z* i8 L6 j% y, Ahttps://www.pdawiki.com/forum/fo ... &extra=page%3D1$ z7 G8 V% C6 [: D( A) f; C; k" W3 j
    里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-27 00:43 , Processed in 0.071468 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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