掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5254|回复: 35

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

[复制链接]

该用户从未签到

发表于 2015-8-5 11:05:40 | 显示全部楼层 |阅读模式
本帖最后由 fengdh 于 2015-8-5 12:49 编辑 2 w+ m" d. v  f* c- L; Z3 L3 E

( B8 @: E- M% U' [3 K7 y我并非MDict深度用户,不过因为想为自己开发的浏览器插件提供本地离线字典功能,结果用纯JavaScript实现了一个MDict解析器。这个开源项目现在仍然开发之中,大家可以去 http://fengdh.github.io/mdict-js/ 围观,欢迎提出建议。这仅是一个在线功能演示,还不是一个MDict在线字典的完全实现。它没有服务器端,仅仅通过网页形式提供所需的Javascript库。需要用户从本地选择mdx而且可以附加一个mdd资源文件,因为不会上传服务器完全在本地解析查询,所以几乎是瞬间得到结果。现在可以支持图像/语音/简单跳转/模糊查询/mdd内置样式文件等等。
9 t. v7 D& I9 j3 A4 ?; {4 o3 ~) s9 h* J# o  i
我用手头的LDOCE/OALD/Webster/American Heritage/WordNet多个版本做过测试,字典和资源文件支持词条索引加密但不支持需要注”册-码的索引头加密,支持文件压缩(gzip/lzo都可以)、词条链接、语音(wav和spx,需要mp3支持吗)。暂不支持超大文件(>4G,离线维基?)。暂不支持Stylesheet替换(还没遭遇过使用这个功能的字典,哪位可以提供个实例就太感谢了)。只对英语和汉语词典测试过,不知道其他语言有没有大问题。6 }8 P" D4 X7 ]% w" q; s# R) w/ V

0 E7 a- g' u! y* l. n; g我打算用它来实现支持单词管理的在线阅读辅助插件,和WordNet可视化字典WebApp等等。将来可以考虑用nw.js/electron/NativeScript来实现跨平台支持,或集成到如多看等基于WebkitView的应用。凭借现代浏览器的功能和Javascript,比较容易开发和扩展很多有意思的功能。比如,复用其他字典的语音资源,甚至给任意字典加上语音或者替换不甚人意的版本。更容易定制字典式样等等。希望大家能提一些有意思的想法,希望和有能之士合作。
5 j  T1 S  i$ x2 I- k1 L
4 j% O1 g# Q, k: y忘了一点,暂时不支持IE(9-11,因为缺乏TextDecoder支持,已经找到polyfill有空加上),想来Windows10的Edge浏览器(号称全面兼容Chrome)应该没问题。
, Q1 P* [6 \# Z; G- y; b) {1 o( W% F# n$ z- Q$ i
谢谢。
/ E6 Y. K6 n* _* H+ t# r* O3 S& O
7 @6 l8 P. [/ F
* x" D4 j" ]3 G: K+ V& m8 }! c( G) s/ C& `  d' G$ H2 p/ P# e
4 Q7 x; s$ q/ H# Y

3 u0 ?/ ~8 Z7 X  h3 \
8 P1 N8 {- J# A" ]% B) O

本帖子中包含更多资源

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

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. ?- [/ E1 x5 |2 E/ H3 E( s
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...

    # E6 q) H& s/ x5 F' x! o% k1 w
    - F/ ~; ?) ~1 R$ g* P可能此词典作者还没有公开过吧。。。5 n5 g. B! H- Y3 a; g

    $ p5 E% q% f. ^  p8 Q. O0 j2 sdog4 @) A2 `: W7 x7 |& h
    <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>
    % D# t: d. S$ ~4 R$ k0 d& [<hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />
    , Z7 B! V4 V% a! f9 M; L4 X5 k<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>
    ' R7 m1 d4 |8 K- S5 R$ X<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 e# K6 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>0 u8 J7 @1 [5 S" Z0 n
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>2 v8 M; {/ W1 X
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>5 N$ u. x# d2 Y) l" Q
    <span class=C_BODY><span class="sense-block">
    ; u# p$ W( l2 f5 `$ Z: U4 @<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">
    . [3 c, K) ]5 d  F2 V% K' B* y<span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>
    3 p! h- b" b0 q7 q+ O<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>
    + c5 L; \8 F$ D% K& ]7 C<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>
      d7 T/ r# ]1 @( _& u, A% R<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>
    2 Q" r( `- }( j8 \; w( Z2 e+ l<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>" u/ }- a$ Z; D8 x1 E) _; [" \. m
    <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>
    7 U0 M7 G5 o, h0 u3 G+ Q! ]<hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />
    , g1 D) O- i& O<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>
    & |  Z8 }+ l) W1 V! V: W<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>
    9 l" k9 b8 `* e6 z0 u/ N<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>
    + D+ E2 K& y# G' [3 x<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    4 C: Y1 [, z( e<span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    ' ~+ s+ t  Y. \& ]<span class=C_BODY><span class="sense-block">% z, m* m% ?7 L, m: h  B. B
    <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">5 n4 N3 j4 g- I) d1 g
    <span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>
    : @  \1 c( Z+ d9 O) I) q: E  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>* S' X( B, R' T# Z8 I
    <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">0 ]( h. h% g9 f1 T* a- K
    <span class=C_DCH>丑女</span C_DCH>  c% n1 {4 r8 _( Z* l1 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>
      }6 l8 T  k  J3 a<hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />
    7 r7 D4 X* D- F: @0 P% V6 Y<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>
    % P' i# _: X! 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>
    : Q0 ?) L4 z4 l: E) f: 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>( @# v& x+ M; w% b% z$ ~
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>- L/ E$ s7 G7 G3 U6 X
    <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>
    . v; q6 D/ M$ J8 ?9 i$ I+ k<span class=C_BODY> <span class="sense-block">) v% n" T4 J  O! N$ i
    <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">9 m6 h8 a! y% G' X) o$ E6 l3 Z
    <span class=C_DCH>跟随;跟踪</span C_DCH>
    & y  h; g- K0 r$ x6 a<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>
    * S0 C9 ^" ~- i8 r" C* @<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>
    * @3 V8 W1 ?; ]2 C" E<hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />2 ?+ S3 U$ R: C
    <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>
    + e" \, f& e8 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>1 }7 X/ a; @9 M0 Z- @. B5 |
    <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>
    $ y/ J& W" }& X' X, E0 a4 a<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    5 i5 ]5 }0 g1 [# }, y' R8 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>7 l- h4 @2 S, b; |
    <span class=C_BODY> <span class="sense-block">
    2 g& @4 W' e4 H" W5 V0 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 cause difficulties</span></span><span class="def-body">
    9 J7 f; M1 W( k5 q; a1 H# |6 y, U<span class=C_DCH>困扰,阻碍</span C_DCH>
    # S8 j0 m: Z) n7 h2 q& j<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>
    : Y7 d0 S* A* z) A<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>
    8 {) s' Z' f/ P) ?- K0 [: Q</>3 h1 w, f% ?* ~! t' E* X
    给你部分demo内容。。。
    # U& v4 {0 s+ x5 q5 T

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑 9 i4 M. r) M) a0 A
    bt4baidu 发表于 2015-9-3 15:36( b( q7 Z5 g4 j+ E$ R1 X
    https://www.pdawiki.com/forum/fo ... &extra=page%3D1
    3 r; ^! i3 n* C- J* t$ i1 U  [) a  v里面的动态功能都是 ...
    - W5 x! ?5 b1 m- a

    " P# V  G7 L: i已经修改了online demo,加入了对内嵌JavaScript的支持。
    $ r3 y% P( q* w* B' ?  u& `- F6 t
    & f6 p* o7 J3 x. k+ l7 l4 b关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
    ; c. p8 L. q2 S7 D, y8 W不知道你有没有兴趣一起开发?我想做成这样的
    / C" D' Z- F4 W$ F+ L8 L, Vhttp://www.hi-pda.com/forum/viewthread.php?tid=1210672
    1 _$ i6 W/ B( m0 z" P+ [" R: H, r; }# C
    ; Z! X) B( T% Y! J, t
    有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
    ( Q  p3 V5 a: [6 A( @! a

    1. 2 t$ _1 k8 ?/ P  `
    2. (function _my_code(window) {
      $ L1 c0 B& r; B+ X$ H9 c: L1 F8 L) p
    3.    function u(c, n) {..}
      # P4 d( P6 s& u
    4.    ..  : f. D  `; A/ [5 l
    5.    function w() {..}
      5 A/ F7 Z; h8 k" l; {  G) I* P1 l
    6.    var F = 0;; k( U; l3 V: T4 l) t% [

    7. 3 C% A0 E3 H5 r: v/ U9 n/ w
    8.    function i() {
      $ S4 n1 u( h+ }. j
    9.      if (!F) {' ^$ m8 r" X  B  g
    10.        F = 1;
      ) M) e" d. U" y8 x% \. ], H/ [- ?
    11.        w();+ k; V8 x7 Y. j2 q, r
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);, d! I$ l3 {+ I" b0 D: D
    13.      }
      , a1 x. c5 J  J+ d
    14.    }
      9 T% S' x7 N5 u- @+ m! Z! ?
    15.    if (window.addEventListener) window.addEventListener("load", i, false);; ?  c6 ^. R8 P
    16.    else window.attachEvent("onload", i);/ t6 w! g8 i) C- c: o1 p4 ~
    17.    
      9 A2 H3 @3 V/ b) J3 y& J9 _
    18. }) (this);  /* In global scope, "this" is the window object. */" n8 }* Q# t" T; _2 w# l! }
    复制代码
    + ~; I7 k: ^  f
    " z5 j/ p" h' v% w0 Y/ `
    具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。/ L: }6 J4 \2 a
    7 t5 E: k8 l, B/ A
    另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑
    2 a8 p1 Y. Z, Y# F( E7 T( G& e# L0 _1 W/ ^

    1 `1 I( q6 q8 _# Y0 q4 K& ~1 X2 R5 Z" B4 }* r* j
    2015年8月5日 11:17:33
    $ Y( i" L" K# _" r- |! W换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。
    5 f5 D/ z6 [% E" L  z<del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>  T& v9 F0 [6 K( l1 K% S/ R# D
    2 C+ U! I& O8 L, l

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:125 k3 _/ j9 b. R7 i
    想法相当赞啊,不过刚试了,貌似还查不了词噢。

    ' m- L' z1 P' D' c5 I  Q0 e
    5 _/ c# w8 G  x可以查字典。
    7 V8 I# b  p1 t5 B9 R! r! H( r0 T$ j# f  W* V" u' p% y
    1. 需要先选择本地字典文件。8 h% o# Z1 w4 z9 P; D
    2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。
    4 R. d8 H+ G* S* n" U1 b0 }3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑 6 m9 G! Y' D. @4 S
    Oeasy 发表于 2015-8-5 11:12# P4 N' x, h2 h' P2 D7 b
    2015年8月5日 11:17:33
    ' p. Y9 k  r  K* E, i换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...

    2 I+ q& b/ S+ e# |: _' R* l
    1 [* l# A0 Z3 J4 s# |出于安全原因,浏览器是不能自动加载文件的。不过插件可以。
    8 v! Q. i, ~  u, w9 S# ]3 }' l8 ]2 l, }  J
    关于排版,正在考虑允许同时选择CSS文件。+ B6 e+ U! k" }, \' S

    & }3 f: L' n) i9 ?- ~1 iIE是个坏孩子,暂时请忽视它。
  • 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>
    4 @" m% u2 k) Q$ P内跳还是有问题。。。/ C! {' |  d6 ~+ O5 @
    没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑 # d$ @# X- ?+ H& p. C) W
    peterdocter 发表于 2015-8-5 11:47
    * y5 F: a; o) |, F2 Adognoun | noun | verb | verb
    $ g  X+ {% {' H1 G' G内跳还是有问题。。。
    ; D; D* z( c0 |! x0 x9 a+ t- ?没有再分析或直接替换成#C_hkz4
    ; y, ~$ {2 o" \% K0 F( k

      z: W% @5 Z2 W; [& R6 R$ P谢谢意见。
      p( `' h1 I6 }' c0 k. e( a( l) R
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    0 q( Y  H% H* m! K) K+ v. J5 p0 w2 Q. R
    1 \) \/ N( H- a1 p- X! h我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。9 Y2 u2 F  t! C1 d6 I$ ]! g" M" G
    我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1916 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:133 Y& a8 m) e9 x! W; a8 E  o$ P
    谢谢意见。- i$ R# V& |& y3 u0 o; O" e  i

    ) ~. ^. j5 Q. G( [  k, q/ Q9 j含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    % n  W) y) F! {/ q( C# H" b
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:511 v+ l# x4 X9 O) m1 D9 b2 M
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    9 a% e# w2 ]8 b* r+ u2 s9 e% o您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:03
    0 v& `/ Z3 C: f) F$ m- T$ ]/ ^可能此词典作者还没有公开过吧。。。
    ( w2 t" @- g  g7 i2 r
    4 y4 u0 z. R  f% Hdog
    $ B4 N) E; l5 r; x
    : U3 K* p9 z" `1 j3 I, I
    谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。7 q9 r; k( ?* ?4 B

    - x/ h. y: s; `& X* c您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

    发表于 2015-8-6 08:09:24 | 显示全部楼层
      V9 l! P; \9 L# j7 ^

      o( Q! H3 o1 W% R感谢楼主辛苦工作。
    5 {, _& D9 `* J9 a, l! E/ d反馈一个。
    3 E- I8 v  h$ z查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。
    1 z8 p. m+ S9 _如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。
      ^; a6 I$ Q" w/ w2 J  K( ^' n% j  l

    9 f7 |" O3 o- ]. c8 @8 @) J$ }

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑 : r, \/ @! X+ E6 @
    Oeasy 发表于 2015-8-6 08:09
    % B+ c/ b& J, E8 B, M感谢楼主辛苦工作。
    8 ]  m0 v4 L. h: N* }6 v反馈一个。; }" K3 @- `) X# h! @  X% B& n7 y/ E
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...

    2 Y* V  i+ j( [" I6 I7 B( u0 A+ ?+ O( k
    这只是个概念验证/功能演示版,离完工还远着呢。
    ! B7 W: H" [! D- d/ Z现在专注修改核心,界面等有空慢慢改吧,! K1 U5 k7 ~" ^9 `% u
    真希望有UI/UX经验的同道加入合作。& e9 Q) e$ g7 ?$ i7 C

    / j7 b8 c4 ?) _- p- e具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:34
    9 y' C+ @) S8 P语音方面,建议支持mp3格式的mdd文件。
    ( U* c! |( Q" \' l% G# r
    已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。
    & O1 Z5 ]" q' S8 j$ `& `7 g, k7 R
    不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1916 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:413 e" f/ b  Z8 _* G7 a# E7 Y) D
    谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。
    ; r8 N, [! @3 R4 O4 r. w, ^9 c
    您可以在顶楼提到的MDict on ...

    " W0 Z, W- s$ Q7 C不错!不过还有一个bug
    3 J1 G( c5 t2 P. j* y<a href="entry://dogged" class="C_REF">dogged</a></2 t  e: \! H- q: u* }
    没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑
    , Y9 u! e' D: |7 |0 B
    peterdocter 发表于 2015-8-7 13:03, v! n6 l, |3 r' X
    不错!不过还有一个bug
    8 T! x2 {% m# M1 P+ i5 xdogged
    , S# T0 G$ @1 B; y) V# j- f, O

    # r" m% t& K: h2 e5 k7 }" H8 D! R5 m这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。) i& s$ S( T0 O
    . \# l2 A. a* i. o
    当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。1 Y' V, K# }$ S$ m5 {8 j

    8 V9 |9 |# n* B5 V8 E3 `不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。! A% G" C, P8 `+ J% O% _
    : Y+ a: _) _% S, @8 R  a' A5 i
    已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1916 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:11
    7 J8 _+ {3 L6 J* {这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。
    9 B: D$ h6 F" z* K
    3 [$ T8 N+ L. s当点击形如 entry:// 非页内跳转 ...

      L! M; x/ [$ Y3 F5 a9 G; o5 U再给你demo调试,而且可以连跳了
    * o- S/ A2 q. K5 ]# e

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:186 Z! k* U% G0 X5 H0 z# k0 X
    再给你demo调试,而且可以连跳了
    / A* p. y3 r) t6 g
    我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。0 m) Y: z1 T1 [% Y

    & @5 _( ^$ X- Z5 o  n! q另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?
    $ J: V' k; K, b8 d7 J- G
    6 i( B9 D. |4 F6 U- m- @) C( hdogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。
    0 J7 j0 q  M) ]6 l5 |) c
    % U: R6 |3 p# U2 u回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑 2 ?9 h& }% f- s* Y( O

    2 y9 @) e1 g" p& p/ V- f1 g* R7 |支持!9 n& y3 Y  |, I/ M3 m$ U
    原來樓主就是因為Chrome插件而開發的
    / t6 k, G5 g- q1 Nhttps://github.com/fengdh/ChaZD; s- p: V! h; d

    3 {2 |( R  p. p( C  C2 i今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:51
    # n) N4 I3 F4 g# x. P词典里面有javascript脚本的话,似乎解析不出来
    - s2 y6 z- e: o
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:27
    4 c7 u6 v9 O; L/ `/ k- S原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。
    " C; ^5 P$ O* Y1 \9 N6 h9 M  g
    https://www.pdawiki.com/forum/fo ... &extra=page%3D1
    - F2 V6 ]! a' I% ~, h+ K里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-27 07:28 , Processed in 0.072613 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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