掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5211|回复: 35

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

[复制链接]

该用户从未签到

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

2 m0 y8 D# H6 U# v: A9 ~0 |
8 D5 |+ s0 S; s
0 s# `8 S. m0 A4 W) d) L, s
8 a6 ?  F$ W( ]6 S& k

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

该用户从未签到

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

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:047 [$ T9 V1 ]6 @, z' h
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...
      t9 s; [5 `/ |7 h4 i
    % I6 c/ N& C  J7 `$ K7 D3 ^# u) \% O4 x
    可能此词典作者还没有公开过吧。。。
    / y% U( A$ q0 u% G: G' {( F2 c9 `0 O/ f  Q( h
    dog
    , }1 |' D1 m2 \! }<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>
    # E5 k( I5 k, d5 [<hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />0 W; l, y- H0 X9 ]" j' n1 t
    <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>1 i7 y7 z2 U0 C! T8 o& P
    <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>; }' z+ r7 Z5 h$ @7 W- _& 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>
    7 B% F3 k6 v, N) H<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>3 Y! A+ D( l; N! a
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>- Y. A0 I& \- r6 g1 w
    <span class=C_BODY><span class="sense-block">1 w6 `, _% ]) k9 A- C8 Z; k* j9 f
    <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">* u7 _$ a# A- X6 `; T5 w
    <span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>
    / U! J" A- b5 w' Z6 o- t<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>
    , l6 J$ L3 ~( Y( Y) c" 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>
    7 K! W% K9 B! v/ j3 \& b8 R: s<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>+ N# a& [$ p- Z" C3 @
    <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>+ G% y" K7 J3 \9 d
    <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>
    ; j& ]/ [6 `9 ]$ s7 a<hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />
    7 {' L+ E: C3 h6 B: f<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>
    5 @, w  D8 z3 I3 q% a% Q+ 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>
      I( o7 X1 D. `, v' r<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>! h7 y6 k  [6 _5 j* s
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>- ?. P7 ?3 O+ ]2 @/ J! t, h9 ]) @( m
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>5 l9 t! \. v) `# H9 l2 }+ }6 C
    <span class=C_BODY><span class="sense-block"># r4 K8 M% E- I
    <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">% O5 n7 B. ^+ i6 k5 X
    <span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>$ t) N$ V3 n4 |( i$ e$ h) L5 H
    <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 _/ W; c. V6 I  g6 C
    <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">9 S. D) V, T# H( D- q/ X5 U
    <span class=C_DCH>丑女</span C_DCH>: O1 d; e* _2 z) c" }+ A9 v
    <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>  r$ V/ V* n* f1 x+ u
    <hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />7 e& s7 O  B6 u; l# q+ f: 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>0 H$ Q4 Z( R* ]/ H
    <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>
    . j' E8 V! B6 P5 R( ]6 r<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; D  o1 X5 A4 Q- z
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>) B; p- l% i3 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>& z- V3 D7 Y6 I3 |) @7 [
    <span class=C_BODY> <span class="sense-block">
    ' u4 H5 f- ~1 [' Z9 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">to follow someone closely and continuously</span></span><span class="def-body">
    & {3 ]; c6 x$ C, e/ b<span class=C_DCH>跟随;跟踪</span C_DCH>& w" p2 K1 ?8 E( K$ I: d# B6 ~, j
    <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>
    % S" R+ G. ~. I6 X<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>/ H- ^4 b4 X% x# |( ?1 e
    <hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />
    0 Y4 p8 p, A! d- K) w<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 }' e% F) u( ]7 a8 e3 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>, n% _: L4 @, }3 P/ l5 C
    <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>
    ! H) X' L0 [) `' _<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>4 K) w5 _9 x0 O- D/ ^$ L( [9 H
    <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 h: o4 t0 k7 h& s/ |) i4 c0 {<span class=C_BODY> <span class="sense-block">
    / a' K( `& b2 t2 K* O5 t<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">
    ' }# a  L9 u# p* ]  ~<span class=C_DCH>困扰,阻碍</span C_DCH>3 D8 |3 C7 h7 d$ s# K
    <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>
    ) k8 V8 {; F6 h' |0 ?( c% Y- W<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>
    ) t$ S" F" d/ A$ W) {5 u! w+ h</>
    & R$ |4 y+ b/ k) A" Q给你部分demo内容。。。7 {7 i0 y1 E( t- \) ^& f+ T9 i% ~+ a

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑 9 e* J8 M3 Z: K( n% ~& x
    bt4baidu 发表于 2015-9-3 15:36
    " w$ Z: r  Y5 g* N! N+ c# |https://www.pdawiki.com/forum/fo ... &extra=page%3D1
    4 R2 _; m0 F% |- C里面的动态功能都是 ...
    4 _* @) i7 W, m/ f& D( o+ M% x

    1 C3 t# n* H9 Z% P" a% N' z- A已经修改了online demo,加入了对内嵌JavaScript的支持。2 K! X* t0 B( R3 k5 a* K

    ) P0 d: v! `4 ?  w  h8 Y关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。1 B4 ?6 D5 ~% l1 p- w( p* N
    不知道你有没有兴趣一起开发?我想做成这样的
    3 r% L6 l/ g* k1 z& W; s/ Thttp://www.hi-pda.com/forum/viewthread.php?tid=1210672: j' k+ P) C/ J, u  k; ], b6 C7 d

    : w& s8 A+ r% L2 _/ P- J2 \% w0 Q( V$ X3 w3 ~. a$ r+ N$ F9 _, j+ a( g
    有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
    9 S" p( M8 k( ?& j, V

    1. % \2 _$ \+ s  [; f
    2. (function _my_code(window) {" v  f* K7 f) m1 ?
    3.    function u(c, n) {..}% J7 M5 b$ U$ t0 m  I. V* a
    4.    ..  # }5 b' l) r; d% g# b* N+ P4 O7 S; l) \# T
    5.    function w() {..}" G; n. ]' x* n# a4 y
    6.    var F = 0;$ T# }2 O7 s( C7 p" Q/ M

    7. & f) H- \/ k4 {/ ~$ p' Q
    8.    function i() {
        m( G! F' \' w) R! r
    9.      if (!F) {
      + `& |5 |1 T, `; b3 b! V9 x9 z/ p
    10.        F = 1;
      * f( v; y+ R- W# O  N0 ^& `
    11.        w();% p; r/ t% G7 Y8 K. K* d
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);" }9 M& m" W; u6 f+ a% P- L( {) k6 }2 i: i
    13.      }  W+ P  ^2 ~, X# F: m
    14.    }
      . p. \7 o; A, ?
    15.    if (window.addEventListener) window.addEventListener("load", i, false);
      ; l" p' f! [, Q5 X( N6 a# e
    16.    else window.attachEvent("onload", i);0 m* U0 j: @8 U! t
    17.     ; A2 m; y  ]. k- R; k% J5 A
    18. }) (this);  /* In global scope, "this" is the window object. */( v! U( T7 n8 S( a5 A$ Y
    复制代码

      C5 O% K8 E: |# p4 d9 r9 x# ^' P0 q
    具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
      I" v7 v, S/ X. V+ M- S! d5 [2 d* k' T" v
    另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑   x' |4 g, A/ Y( J- B: W

    ( j$ l' o  y% h9 ] % h& x9 u9 J2 z* R* g
    6 B8 n1 E; f2 ^
    2015年8月5日 11:17:33- e1 F6 f6 ?) r7 `$ n
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。
    & N: I0 {* |8 d* L5 L& k/ V" R3 d<del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>; v& D9 E! L7 K5 P0 z3 s: }) n

    3 r. w0 `9 N  h5 g( ?/ ~: U9 n% N

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:12
    9 P8 C# k- d7 `, Q- }想法相当赞啊,不过刚试了,貌似还查不了词噢。

    4 c/ H3 ]# {* [$ Q% T2 g- H0 D, W! e2 W
    可以查字典。
    ! p- U! U: [4 A
    ! @+ B; e9 Y, T$ N8 u5 o5 R1. 需要先选择本地字典文件。3 j" ]. w, i1 q' y$ x, W4 Z
    2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。
    8 @, o* t4 s: @% m9 v* l# r% M3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑
    7 e) U8 n6 q2 z) p8 w3 a
    Oeasy 发表于 2015-8-5 11:12
    * ^& T6 b5 V2 U# m2015年8月5日 11:17:338 ~# U+ }$ Q# s# P( r; k+ V
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...

    8 z+ _3 }" ~' W& P
    ; D" I: Z0 l5 {$ K$ a! w出于安全原因,浏览器是不能自动加载文件的。不过插件可以。2 U7 I0 K! T! I4 B! ?
    2 q8 }. f6 v' w9 D  _) m
    关于排版,正在考虑允许同时选择CSS文件。
    ( V, [. W: [) P; o. g' Q6 ~
      s& _1 d! ~5 K; @+ K$ c$ G7 _* K' SIE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 1910 天

    [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>) g' W- g/ k/ Z: w9 a3 Q
    内跳还是有问题。。。
    . v* P4 q& k0 N2 ~. {6 y; C) v1 `没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑
    ( o, F4 A5 N. v$ f/ x+ W
    peterdocter 发表于 2015-8-5 11:47$ q1 w1 P. e9 _8 Q
    dognoun | noun | verb | verb
    6 g- m8 O: ~3 ]9 z& C: f  s内跳还是有问题。。。
    1 C2 }8 ^' [) Y: l/ g( Y没有再分析或直接替换成#C_hkz4

    / f1 p1 o; y- r( J, T4 o1 L; [) {3 \: K* _1 X6 {' [
    谢谢意见。- `- C$ Q) W1 N. |, ?6 Y1 ?

    2 r4 J4 T6 e! J% Y含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    3 r+ u8 U7 v( }# y+ v1 Q& s8 @7 @' h
    我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。
    5 d- }6 h2 @2 k我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 1910 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:13; m% a: n  K. A6 |: W$ V9 _4 Q
    谢谢意见。* U* h. q. ^7 i. d( ^# I8 f" ]
    8 e; p8 C- s& r% J
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    ( ?9 F: _- k. U
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:51
    # o. Y( a3 Y0 M; A3 o$ w* Nhttps://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    7 ?  c7 s/ q$ {8 @您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:03
    / \" A. y7 V  ]+ T! G可能此词典作者还没有公开过吧。。。# f  ^) D9 Q5 M) C' g& P$ D- p. G
    - s8 Y; i& Z+ H; F( `* ~) Y
    dog

    ( R4 D# M6 K* a5 Y$ C8 z3 T$ o# T+ I9 u1 g3 [6 j9 O) w
    谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。1 z* }. y: H6 G8 ^1 j* O$ l. B; I

    6 e; Q2 H* a2 C您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

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

    # M5 G0 H; \! i) p% F& M/ ?
    # y! M, y1 W& ?5 _9 j# J感谢楼主辛苦工作。
    # I  n( T5 B4 l2 J1 ]" k反馈一个。9 R. j+ e' c6 ^8 a9 V6 N
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。
    : o; e1 r* M+ j' J0 D如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。
    8 }0 }: H# w- U5 x7 @  Q
    & v; m2 F9 {5 N  Z5 E; `# F& J/ x' K# H

    - M9 X& B# ?: S. p5 T' Y

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑 5 t4 D5 D4 A3 a6 g+ B  j
    Oeasy 发表于 2015-8-6 08:09
    ) f! h7 t) `6 ]$ N感谢楼主辛苦工作。
    ' y. I. ?7 q  Q( l2 Y- T! d$ ?- A反馈一个。4 D. {2 e& z; R
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...
    8 _( @6 n4 `: @- v( S
    : @' r8 D3 K/ V7 L% C1 Y2 h* q* `
    这只是个概念验证/功能演示版,离完工还远着呢。6 _% [9 e" v! V
    现在专注修改核心,界面等有空慢慢改吧,+ d' y& E/ o4 A& y$ W
    真希望有UI/UX经验的同道加入合作。( ]4 ?5 \4 b* C' B, j/ x7 _

    ! f1 |. Q, _) N- d7 {( S' j具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:34
    & U6 [% C, t$ \$ A语音方面,建议支持mp3格式的mdd文件。

    ! I4 s3 l% i: o+ c. e已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。
    5 s: _6 s1 K( R% Y  W! i
    " b9 X& E0 @& X不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 1910 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41" J5 s, O0 D: G, W! Z
    谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。; S, C( v- l% Q3 n

    4 o3 }" t- w; w3 |/ W# |您可以在顶楼提到的MDict on ...

    ' Z% E, ?, @3 h, O* G不错!不过还有一个bug
    2 c6 ^+ q% w; t* s<a href="entry://dogged" class="C_REF">dogged</a></
    # Y3 t( B) E2 A5 v. X没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑
    . @* P: e1 X- t7 b4 j2 v1 o3 U
    peterdocter 发表于 2015-8-7 13:036 _& M9 a% e. \" N: c+ ?+ c' O9 d& [
    不错!不过还有一个bug4 y# s) T) {' Q- X
    dogged

    , ?- ~+ n1 V9 c3 h+ B& N( k; a
    7 d6 p, N: w5 r2 J" \0 v* v这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。* n0 N3 \( p! ]7 _/ w5 i! P2 D

    * M5 a* w$ \" F" i6 D. t当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    9 Q! p  n# s, r$ g
    / C! a" K% }) {, ~不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。
    ; h, s8 p  i# I# K2 J( P6 t1 B0 _3 T8 t6 c2 z! j
    已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 1910 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:11
    ) [) C- x, w- S6 S: l: ^这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。
    , m6 Q' z- [! j$ X, j
    + @' U; H( o( X当点击形如 entry:// 非页内跳转 ...
    - m/ }3 ]+ }+ A5 X! E" Q" M
    再给你demo调试,而且可以连跳了
    5 P3 j) t( w3 E) A

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:18
    8 a2 Z( h8 ?  \+ ~# J4 {& c% q再给你demo调试,而且可以连跳了

    0 |9 t+ B( j$ d" s  ~1 }我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。
    7 V( b7 j$ N2 Z% y' `6 m2 L# Z
    7 `4 P8 S* A( T5 R另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?# X; ]9 }, N8 Q+ _

    1 f1 i  ~! c( ~  P& ]7 zdogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。
    , j0 {( o+ ~. V+ W& D
    * p5 {$ n1 K/ D( Z回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑
    / b+ }" _, d; h" _, d6 {# L1 H* b( L, T3 Z9 x: l2 B
    支持!
    4 o( `. K$ H. X% K# T6 v: s( h# a原來樓主就是因為Chrome插件而開發的
    , {5 m# @" ~$ u) n5 l2 uhttps://github.com/fengdh/ChaZD
    - U( S8 D# d) R) `2 x5 a- t9 C8 n3 K  n5 q# q* t0 W/ s# P2 W( g) r
    今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:51
    9 i% C8 l% g; c8 `词典里面有javascript脚本的话,似乎解析不出来

    . q1 Y$ n% D3 q! v原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:27
    4 d6 |# G# {5 e+ t; G" z- T0 e原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    . a# b" ]( M8 w1 f$ ^) i. A# dhttps://www.pdawiki.com/forum/fo ... &extra=page%3D1$ Z3 G' r, ]% a7 Z# ?$ R
    里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-20 11:21 , Processed in 0.068571 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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