掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5215|回复: 35

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

[复制链接]

该用户从未签到

发表于 2015-8-5 11:05:40 | 显示全部楼层 |阅读模式
本帖最后由 fengdh 于 2015-8-5 12:49 编辑
# f7 R$ E; a; @% D
& p/ F! _0 O; X5 ]! a( k/ ]4 j: K, K* @我并非MDict深度用户,不过因为想为自己开发的浏览器插件提供本地离线字典功能,结果用纯JavaScript实现了一个MDict解析器。这个开源项目现在仍然开发之中,大家可以去 http://fengdh.github.io/mdict-js/ 围观,欢迎提出建议。这仅是一个在线功能演示,还不是一个MDict在线字典的完全实现。它没有服务器端,仅仅通过网页形式提供所需的Javascript库。需要用户从本地选择mdx而且可以附加一个mdd资源文件,因为不会上传服务器完全在本地解析查询,所以几乎是瞬间得到结果。现在可以支持图像/语音/简单跳转/模糊查询/mdd内置样式文件等等。. i' B, @, S; o7 F2 n# @
7 s8 t* G5 m5 t: U, l3 D
我用手头的LDOCE/OALD/Webster/American Heritage/WordNet多个版本做过测试,字典和资源文件支持词条索引加密但不支持需要注”册-码的索引头加密,支持文件压缩(gzip/lzo都可以)、词条链接、语音(wav和spx,需要mp3支持吗)。暂不支持超大文件(>4G,离线维基?)。暂不支持Stylesheet替换(还没遭遇过使用这个功能的字典,哪位可以提供个实例就太感谢了)。只对英语和汉语词典测试过,不知道其他语言有没有大问题。
5 W6 ~+ A( _0 w8 q' \" f, N& P8 @7 o
我打算用它来实现支持单词管理的在线阅读辅助插件,和WordNet可视化字典WebApp等等。将来可以考虑用nw.js/electron/NativeScript来实现跨平台支持,或集成到如多看等基于WebkitView的应用。凭借现代浏览器的功能和Javascript,比较容易开发和扩展很多有意思的功能。比如,复用其他字典的语音资源,甚至给任意字典加上语音或者替换不甚人意的版本。更容易定制字典式样等等。希望大家能提一些有意思的想法,希望和有能之士合作。
! q' p# {" I0 {' x4 i3 h2 ]! j
. k/ h9 m# T. F0 ~忘了一点,暂时不支持IE(9-11,因为缺乏TextDecoder支持,已经找到polyfill有空加上),想来Windows10的Edge浏览器(号称全面兼容Chrome)应该没问题。
; h; `! Y$ V/ w( z4 P7 @8 Q/ [, D( t1 A$ d' o
谢谢。! u8 \1 V0 _3 H

2 G1 A4 K' @8 p
8 P8 |3 f# E" Z0 p6 {9 g( S0 N
. Y2 l1 G7 S2 ^0 m! S7 k  y: G7 I: g* k% h! V+ d5 x! G  G

5 I" f3 G' q( X' p7 P" d7 ^# A9 R) e( G5 {, ?  o

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

该用户从未签到

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

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:04
    9 u$ m" Q  V5 a: c# J0 `4 h您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...

    5 S1 e& @$ u( p( Q# w/ T3 ~1 Z5 g: }0 y- z0 e
    可能此词典作者还没有公开过吧。。。
    # s) y1 R3 K$ v- a
    5 P" Q( u5 b' Adog
    ! t8 I5 j4 n9 Y) C1 {4 z<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>$ Y, e' B" D: m- k' s" ?
    <hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />% ]* @* ~0 C, }% X$ j6 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">ANIMAL</span C_GW><span class=CD_CH>动物</span CD_CH>. c2 Q* H+ O7 m- q) A: x" k+ Q7 s
    <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>
    : S5 G% N& D; u2 ~; s<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>
    . C/ Z- L% ]3 O1 x" x# V<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>2 r6 |" w3 j6 R% Z5 v% k
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    ! g6 r% f( M# s3 D/ @1 [<span class=C_BODY><span class="sense-block">6 s" `7 I: T% 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">
      L4 c8 B- K* N1 m2 h. x& n) l  g<span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>
    : }& N# t6 R& d0 a+ S9 ]- _+ S<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>
    / ?5 v. j5 r& |5 t! n<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>
    , [. }% W' [( B8 l% i8 h6 v; ], v5 n<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>
    # L! R4 w: R! c) F: S<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>
    0 ?+ K5 w' v, L+ x<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>
    # c( u8 @, u0 S& g" ^5 {7 U8 `1 E<hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />
    ; P$ l/ S' V! b$ M6 e' x. V<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>7 z" E3 k( n" q3 E3 C6 q
    <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>
    ) D/ F+ `  [3 N7 t! t3 {. p  V<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># N7 J5 E% v) I8 @. _7 R5 d
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>4 q) d  }% M. ?0 l2 R6 O6 `& b
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>2 F3 N0 x8 h; t1 m
    <span class=C_BODY><span class="sense-block">
    3 M! S. p" M4 g$ 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">) G! p: F# ]7 V* `
    <span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>
    / B! [5 k% g) g8 ?3 h/ |2 d<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 W5 i$ E1 q6 K: a2 v<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">
    ! X, c/ S6 k2 U<span class=C_DCH>丑女</span C_DCH>/ |7 y  X) q2 p  Y$ U6 ]
    <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>% t* [, {' \# ~8 A1 b* X" F
    <hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />
    $ K# \- J( T* V, J; r* 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>6 ^" _  \! P# M( V1 N( @0 |% ~
    <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>
    & ~4 ?' X7 C1 ~' c' `9 B; ?<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>
    & h3 B$ j; V+ O; y) N( @1 M$ m<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>; r% y: ?/ c0 S( f+ E2 \: B  U" 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>
      c2 f/ C, x4 P$ U) D<span class=C_BODY> <span class="sense-block">5 I) Y1 T" {+ f9 g; W9 Q: t# L! R
    <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">
    - T: C! }$ g$ g; m9 [3 S<span class=C_DCH>跟随;跟踪</span C_DCH>. ]  z7 H# g9 T0 J# B. o
    <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>4 U5 z" L2 A% G" j& v
    <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>( v  O- n8 @- Y: B1 s
    <hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />
    $ w% U/ W+ b7 j$ n/ {<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>* ?" R3 {+ ?, N& 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>  u  T' S0 i& H* E) l. h
    <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 j7 Q7 T( B' J3 s' H- E<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    2 c, {! i" U7 R% L. e6 F4 N<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>
    " k) t5 `2 r" M/ O7 V<span class=C_BODY> <span class="sense-block">
    4 H5 b/ F2 \* l0 I0 E. 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">
    9 u+ I% T/ _2 r; K2 ]+ G1 g5 z5 W- ~% P<span class=C_DCH>困扰,阻碍</span C_DCH>( U/ H4 D& T- R. K( ^& s
    <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>
    ) U* P# p/ H7 J8 c4 ?2 o# n* h<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 _. w, r' C' S6 w; q4 N% }
    </>
    ) r. w" r" S: i/ a# f/ y  `+ ?给你部分demo内容。。。: s* r; y/ r  ]( k2 q1 D

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑
    % V9 v. ~& Q4 T9 p
    bt4baidu 发表于 2015-9-3 15:36
    - q6 z8 O5 {' i1 r& O7 Lhttps://www.pdawiki.com/forum/fo ... &extra=page%3D11 B5 q- _" u2 l
    里面的动态功能都是 ...
    . ]' |. M" T) Y* `" v; r- J

    6 E4 o4 N+ x* d) U已经修改了online demo,加入了对内嵌JavaScript的支持。' ]3 a8 I; l8 C3 g: s4 Z8 [

    / r' o! `7 ^$ u关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
    2 ?5 }% Z& r: b3 q不知道你有没有兴趣一起开发?我想做成这样的
    9 B6 t1 S- q5 r3 t/ T- Whttp://www.hi-pda.com/forum/viewthread.php?tid=1210672
    3 a8 D4 q" l7 l' {$ g6 n/ H$ k. n) h

    ; Y4 ^5 g; p' Q% E有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:3 o1 y% @, r8 n$ H; r( F6 F6 N( M/ H+ O

    1. + B4 \3 b* K  d% x# }
    2. (function _my_code(window) {
      ( F, c# b+ P0 l) M/ S0 r
    3.    function u(c, n) {..}
      5 V" S2 ]& z. E. O3 k
    4.    ..  
      ! X5 `5 m% `% N$ U1 [* l) L
    5.    function w() {..}
      * |& L& T' Q" h
    6.    var F = 0;% D- S" i$ S) \' m0 ~0 H
    7. 9 v) P( o4 d+ R% T8 R  M. ?' O* N
    8.    function i() {
      2 _; d5 F& h4 u- a( n/ W
    9.      if (!F) {: E, a/ L6 O" E* T! U' \9 G
    10.        F = 1;
      1 `2 R; [/ D3 h  g% Y' ?/ \( u! X
    11.        w();6 ?/ t: l( l, H: L# p6 Z9 a, X
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);5 [$ D4 F2 w) h3 [) A' }
    13.      }: ]5 O5 S4 V7 b" ]5 s7 J
    14.    }: M, |' |4 u  e$ S/ |8 Y1 I% \
    15.    if (window.addEventListener) window.addEventListener("load", i, false);+ f3 l! p: w* q* D. l
    16.    else window.attachEvent("onload", i);
      & j) q' Y7 w5 K* B: j$ U
    17.     & m& u& G# C7 ^8 h
    18. }) (this);  /* In global scope, "this" is the window object. */
      % T0 o. X, e4 l: D% l
    复制代码

    5 \- |# g. r1 q
    5 P7 f: e2 |; q* N5 T# C; ^具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
    / U5 Y0 Q+ v  U, m9 L' `5 C/ {+ N8 _. y1 x$ e7 D  W4 k# Y, Q
    另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑 ; I$ _* x$ U; h, N9 J0 Y9 U0 j

    + M/ Q/ T( a- {7 \
    $ F3 M1 m4 u. I* }4 v2 l; p, t- X! d; u7 [' C
    2015年8月5日 11:17:33( C+ Q; J6 Y# ~6 R8 p: _% F
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。+ v# p; o  j' T6 Q2 l8 c
    <del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>6 c2 ?4 N" B: }
    2 f( A( Y6 C+ U4 j) c3 c

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:129 y; }$ f2 K( z% V
    想法相当赞啊,不过刚试了,貌似还查不了词噢。

    ) r  `  i( |: s  q' m7 j0 X( Q! ^  C+ Y  w$ o! L
    可以查字典。1 G3 m6 p0 L: r  b6 A/ t

    4 {* O  ~# s; @+ @  W1. 需要先选择本地字典文件。
    8 z: C- s+ b; [! v# ~7 i% l2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。3 H" V' k5 I2 L& y8 G0 R7 n3 N
    3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑 $ x8 W4 x. |$ k; X& T) u( @- C( J
    Oeasy 发表于 2015-8-5 11:12
    + z$ s8 ^( o% K+ I2015年8月5日 11:17:33* u+ t/ }" L: `$ ~
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...

    & j$ a4 J9 g" I/ q- D. R  @  k% W( ^, M. s4 ?3 W( L
    出于安全原因,浏览器是不能自动加载文件的。不过插件可以。
    2 {1 |& U) v1 C2 F- ]4 V0 O! A8 C1 o7 m" `
    关于排版,正在考虑允许同时选择CSS文件。4 z$ S7 V' V0 _

    ; ^+ Q( U( \2 {IE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1913 天

    [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>" X# R. h) A, [% m+ ~* I7 d
    内跳还是有问题。。。
    $ L" R' w9 v/ G2 E+ ~' v$ S8 A2 L没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑
    , \+ n1 W" U4 `* }! Q
    peterdocter 发表于 2015-8-5 11:47+ g) a+ {3 W8 k9 T/ _( X6 s8 U
    dognoun | noun | verb | verb6 Q+ g2 s3 U7 ?2 F; n: w
    内跳还是有问题。。。
    + m' m) ~' c, E6 o' \没有再分析或直接替换成#C_hkz4

    $ l. o4 R5 Q' F
    , H, ]9 Z  W; `1 |: y8 @6 N谢谢意见。
    1 I- M" W7 F' S. A. v
    , e$ n' c) E0 B4 n7 V4 {( F" U含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    8 A; `% T& ]% d9 B1 h
    + f( ~! c, N9 d8 f' K7 |! P我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。
    3 S+ e" h# k/ c2 H1 B% g: C4 o我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1913 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:13. N( Z0 ~1 e1 b4 q2 A  G
    谢谢意见。' B' K2 e  g0 j2 t& S% K. c
    6 t! v2 g) e, D7 s
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    ! @2 O- D% D+ _
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:51
    3 p3 R" A% I. E" L8 i; |- Ihttps://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117
    / L  w! C+ w4 e# p
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:03# O. |; B3 N8 J# F- d
    可能此词典作者还没有公开过吧。。。
    5 W" P5 q! M# e% g9 q5 x3 {  x- b' h
    $ [' }3 ^- }7 G0 @/ y% i" ndog

    " k7 |5 g/ m( C$ t  a. k' ~! O# [  M& k2 u& [. ?$ G. Z- k
    谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。
    - m6 K9 L  {% O% X5 Q. p* ~9 m' w
    7 f* c* n  a3 B- {0 c1 B! m您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

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

    3 c( e- ?, v$ ?3 x% [. D. f' [
    2 K8 R* I) u% R- L+ g: c感谢楼主辛苦工作。4 w5 b& {5 N* T9 u! |
    反馈一个。. M+ r. u0 \; V, O6 n
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。0 U6 A7 [* Y* R$ S: s" d1 E
    如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。
    # n2 ]- f/ B' c: J' ~. J5 _3 ]/ j- D: O5 i, l, |( n
    : x: K. Y$ o" x* T8 U
    - J: R2 |3 n5 Z5 O7 z, B7 z: D5 N

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑
    6 d/ G" b: m' P. C: e+ V, O
    Oeasy 发表于 2015-8-6 08:09
    6 a  }' g9 ]: p. O感谢楼主辛苦工作。
    8 _5 f3 s! F& _反馈一个。
    ) ?0 Z4 D( Q' H# o查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...
    2 g  Q' C. t2 Q0 s3 K
    . \: l6 o4 E4 S& O1 i
    这只是个概念验证/功能演示版,离完工还远着呢。0 ?  {- C& ^6 b/ ~% d, {2 B* J
    现在专注修改核心,界面等有空慢慢改吧,3 i8 H6 s' c/ o$ x. a1 ~9 j
    真希望有UI/UX经验的同道加入合作。1 H% n1 C4 s: w. ~
    3 |: V1 T% c# X1 }
    具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:34
    3 p* U/ E/ ]; b7 u/ i6 K语音方面,建议支持mp3格式的mdd文件。

    , B! k9 [/ F: t& s) G: B6 C已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。
    / `1 g! E+ p% [+ K3 w4 Q% ^" s& ]
    5 b1 {1 x! K$ h# H, _不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1913 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41
    * o& A% l. K% X6 M- s8 U谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。
    9 J0 U) S& y0 K0 ]
    0 t4 w7 s' Z& Q) q7 |您可以在顶楼提到的MDict on ...

    1 d3 l# h9 q. m; p( B# Q不错!不过还有一个bug9 t4 Q4 J$ V# b
    <a href="entry://dogged" class="C_REF">dogged</a></$ Q5 M: Q& w; i
    没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑
    , W* {+ A6 A  E9 q4 X" I% n. K8 ~
    peterdocter 发表于 2015-8-7 13:03$ m6 h: C2 g( N' |- `7 p, e( l, O
    不错!不过还有一个bug
    * G2 D2 G0 H) v& _+ sdogged
      W) ~+ R% V  j5 c  Q; x5 I- }' G3 k

    & f% n' q, d( G这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。$ X% ]/ D  N5 N9 D, Z  |5 z
    ( k, R: V1 I; u, v$ {2 g
    当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    0 \) ^3 U1 S8 C+ h
    ) X5 d9 X8 M( w+ w1 C# E不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。
    2 X$ R) h, G$ A  X: i. X# ^. K* i' d$ \8 z7 }
    已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1913 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:11% O" z# W- P' b2 e; }! X
    这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。( E7 s1 ^- P* l2 p( H. a" n
    # V' ^7 b" H" {. \( T# x
    当点击形如 entry:// 非页内跳转 ...

    & F; R" ~  C0 _2 i: G# s再给你demo调试,而且可以连跳了 3 T) d" j7 `  S+ l/ F4 k

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:18, c' F/ C/ s( U# R# m; Y6 C
    再给你demo调试,而且可以连跳了
    * Y+ ]" Y8 Y# Y4 S8 `
    我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。! g& T( _2 v* g  ~
    9 y% K9 I8 O% s% K
    另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?* n5 N* L$ i5 T) _9 z! _

    ( p; p, m. g  cdogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。
    ; L' N, ?8 v/ [- t- \7 {  x& a; f) f- ?
    回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑 2 U& a, \" n  h$ E0 B1 }

    : J! _* I, o8 m4 n; f支持!& l& |$ R( c( R
    原來樓主就是因為Chrome插件而開發的
    - W  @0 i7 D/ g) F- I  ~6 L: \6 Xhttps://github.com/fengdh/ChaZD* y( S) A" U$ @9 h3 G  t

    % B2 q* A; Y! ~4 M: ^今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:513 Z* [$ O: C) w: e' d3 ]
    词典里面有javascript脚本的话,似乎解析不出来

    ( j0 k; u+ s2 L5 Y$ T2 @$ ~原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:27
    - w0 `8 p+ O& f- P原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。
    ' T! e0 M1 _# o4 W
    https://www.pdawiki.com/forum/fo ... &extra=page%3D15 ~( n2 g, I3 w- y- w
    里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-24 01:35 , Processed in 0.078507 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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