掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5240|回复: 35

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

[复制链接]

该用户从未签到

发表于 2015-8-5 11:05:40 | 显示全部楼层 |阅读模式
本帖最后由 fengdh 于 2015-8-5 12:49 编辑 ( k3 O0 n, W1 w7 k) x

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

1 ?) h% E7 F' s! A' j  b我打算用它来实现支持单词管理的在线阅读辅助插件,和WordNet可视化字典WebApp等等。将来可以考虑用nw.js/electron/NativeScript来实现跨平台支持,或集成到如多看等基于WebkitView的应用。凭借现代浏览器的功能和Javascript,比较容易开发和扩展很多有意思的功能。比如,复用其他字典的语音资源,甚至给任意字典加上语音或者替换不甚人意的版本。更容易定制字典式样等等。希望大家能提一些有意思的想法,希望和有能之士合作。) u" X2 B$ F5 l4 d/ R, g4 R
# ^1 S1 u. l8 h. w3 _
忘了一点,暂时不支持IE(9-11,因为缺乏TextDecoder支持,已经找到polyfill有空加上),想来Windows10的Edge浏览器(号称全面兼容Chrome)应该没问题。
6 ?$ s1 c2 m9 T/ U
7 h6 @/ g- e6 ]3 R) C谢谢。* F& q0 o( e6 t

% ?) m, y1 [( M7 C& l( Q2 S# U* p" h; a/ E6 `' ^4 P. Y
. X7 m  i3 [/ M0 E

9 q$ @: y, B& z/ W1 G
/ x  r. U& A/ D& `' L# ?* Q3 O
+ z  L: ?* B0 m5 v$ X

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

该用户从未签到

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

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:04* J) P* p. ]; G7 u5 z- }- a' G' W
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...
    ! B5 R! p) J# D; j# V

    & N  D! s$ y4 r9 M9 C4 g/ E+ J. o可能此词典作者还没有公开过吧。。。7 Q5 U0 [/ d1 D. L1 ?$ k2 D4 O& B
    % l( u- z) _! J# B0 k
    dog$ A2 R+ b  M9 p( r; Y
    <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>
    6 `0 }, k! d( E<hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />& v0 q" c' L, l& N* U
    <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>
    $ u1 U5 e+ G: Z1 ]8 r, w' b# B" G<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>
    ; l: w( p3 L) 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>/ Z  n# O  x& @
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>/ m5 R: I+ F! e% G/ [) C. B) `
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>) h7 F6 s$ F& u3 B# l5 R
    <span class=C_BODY><span class="sense-block">3 s2 I3 B$ N& `
    <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">
    ( M6 i" X6 y2 T; M0 O4 U<span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>7 H" n6 U- M, `0 c5 p
    <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>3 `. D3 O3 T! x
    <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 m4 m1 G- j+ J6 O* X0 H' B<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>
    4 {+ N8 O! g* y<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>; w! W' w+ p/ N
    <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 S7 U3 M) W1 T, N) w! z! }<hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />6 A5 V- O; A- e) I
    <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>
    + z7 _/ ]& j0 g9 m<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. x& o% ^' R+ o) 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>
    8 b/ r  v3 j' l) v0 f5 n1 J/ p! ?<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>3 |  r6 B: |# v& H/ s
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>; F9 s3 p$ i7 ?5 v4 H
    <span class=C_BODY><span class="sense-block">
    / s: L% O$ Y5 h+ L5 u( r' 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">
    ) \2 |7 U6 [* Z<span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>2 {8 s% r# I5 n* `6 P
    <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>; c4 U2 ^' s4 {
    <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">: e* v7 h& [- P) Q7 r* x
    <span class=C_DCH>丑女</span C_DCH>4 e* e& A; \, k2 a6 u. 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 M5 i. s8 G5 m0 y9 M" ]2 q6 k<hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />: }  S* n  a. e& j; W/ Q, 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>
    # w% D$ O" \8 y7 b# _; j& P, F<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>+ q; H* o/ H& z- K1 a& o( 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>4 [2 F  V  r: r7 |2 a
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>- P; m' c4 ~% [
    <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>
    9 d5 T, F- _- v* Y; c<span class=C_BODY> <span class="sense-block">( X# n' R8 U# a/ n9 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">
    4 ?9 T1 f5 x& T) z<span class=C_DCH>跟随;跟踪</span C_DCH>7 n$ t. V$ d% A5 _* A6 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>
    " j3 _" y9 E/ K, h5 z" \<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 d4 U# ?, Z- _5 f<hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />- L" H2 J5 H) h( h8 t+ K9 p: p- i
    <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>
    2 g" Y/ K1 V3 W4 `& k<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>7 M- k& a% v: R. q( 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>
    ( {( x$ |0 U- k<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>0 i5 {" |; O# q$ q$ r
    <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>
    8 \3 y( e9 G& x% J' `. P<span class=C_BODY> <span class="sense-block">- M, H, O$ C$ y4 @( W( o
    <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">
    5 P9 G+ B, y% j6 j<span class=C_DCH>困扰,阻碍</span C_DCH>
    6 t: Y' U! m& H' N, ?7 g<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>
    $ D2 F$ r' {) h6 J# g5 C<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>: V, ?. ]9 I+ j; y/ V. ~1 E$ C
    </>3 t" Y. `$ K8 e9 |, N. G' F
    给你部分demo内容。。。
    & K1 t7 K3 R& D( L4 I" ?

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑
    " g6 p( R& A; |3 K" X( A
    bt4baidu 发表于 2015-9-3 15:36. }; L( l3 I6 c5 E* A* n" e3 A9 z
    https://www.pdawiki.com/forum/fo ... &extra=page%3D1. Y; n; @& D" }; x  s  b
    里面的动态功能都是 ...
    2 Q8 d- S2 e- G8 p" |, g
    : V3 f" ~8 w+ ^$ T1 [; W
    已经修改了online demo,加入了对内嵌JavaScript的支持。$ ?- O' m; s! q
    % Y  T9 v6 N1 }) z2 g% a/ e6 N0 u
    关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。; W& a3 Z: o; a+ n- k
    不知道你有没有兴趣一起开发?我想做成这样的( G; m: R& `' ^+ c  V: \
    http://www.hi-pda.com/forum/viewthread.php?tid=12106722 V/ h/ o- o5 G

    ( f& \* D9 e: Q3 Y& J% ~4 F+ ]6 Z  `' o" q
    有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:0 B- A; o6 A* ~; ]; J) a" Q

    1. 1 h' [# }4 V! F$ o" M9 M+ x
    2. (function _my_code(window) {. |! i3 J: i& D0 o% V
    3.    function u(c, n) {..}
      : v4 H% A: x  a" z
    4.    ..  
      6 g5 t: {9 k5 u! n  y. U( F0 x
    5.    function w() {..}3 }0 b# ]) j* N2 l! D
    6.    var F = 0;- z) R& L0 `8 h3 r; u8 A

    7. # W, s! {# w* P. ?( f
    8.    function i() {4 H2 G1 F. |) X# s4 y9 K9 Q* ~
    9.      if (!F) {% Y$ U& ~1 S% ^, a
    10.        F = 1;9 |* m$ p  U5 j' J8 g) q# J$ b
    11.        w();
      6 S& E: Y& B6 R1 O6 q) m
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
      1 B  Z0 s4 ^. Q0 Z
    13.      }. w7 k% P8 `1 F$ j: L
    14.    }
      ; [8 f6 k4 [( Y% C  t0 s3 ?5 y1 h& ]
    15.    if (window.addEventListener) window.addEventListener("load", i, false);
      ' h& K5 d9 x0 K6 M: {
    16.    else window.attachEvent("onload", i);
      / h3 D3 _2 p1 D
    17.     $ I& C$ y1 P  f4 n5 a. g
    18. }) (this);  /* In global scope, "this" is the window object. */% G. M, G4 x0 B; i) ~" t( L7 T
    复制代码

    2 m: g1 m" d, M( c
    % @# L" Q% K" f- n6 b具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。( k7 U" |' i8 i

    9 L8 ]3 c! X) [  O% v0 x另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑 # [+ v; m7 z# j9 r
    ' L$ z0 E5 \) E8 `6 d/ Z, u
    . F, ?$ x" i6 p: u+ d4 R8 w- b

    $ k  d3 t6 J9 j2015年8月5日 11:17:33
    3 k, X  G+ ?8 h; w% ^# O5 h换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。: v/ {6 D8 J% D
    <del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>( A7 y, L1 g) j2 a
    9 ~; G1 v" t! P6 @

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:124 I4 A& {, _5 F: U+ k: y
    想法相当赞啊,不过刚试了,貌似还查不了词噢。
    $ A+ d, o6 M' F# b1 A
    ! z1 s- O* j7 j8 K% S6 y/ b, h4 W5 ~
    可以查字典。
    . m/ w4 {0 C9 g5 r5 i8 G9 ~4 s: P1 {  U# }
    1. 需要先选择本地字典文件。6 h6 R6 K) G, k# E! ~% M
    2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。
    $ I# `* d" B# n, P% S  s3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑
    2 C. L6 N. \  l1 k
    Oeasy 发表于 2015-8-5 11:12+ q: R# X4 w7 }6 a3 _; e6 ?$ v
    2015年8月5日 11:17:33
    , y7 v! j, U+ ^- o+ a! Y换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...

    0 x$ m4 C, |# ^' ?2 Z1 Q/ o; ~0 h6 W5 X* v8 g. h  x; z
    出于安全原因,浏览器是不能自动加载文件的。不过插件可以。. {; v4 p# p( v: R8 N* I8 Z
    6 Z5 a! e# ]9 Z" ^& G9 e7 a
    关于排版,正在考虑允许同时选择CSS文件。
    & h! B! U/ ^* O! r/ a9 r$ W
      {5 E2 }% B7 W0 ZIE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 1915 天

    [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>
    1 {, i2 w6 J5 _# Q4 u. D内跳还是有问题。。。. X: L0 x" ^- \: ]
    没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑 - B2 C& `% P% S# @5 o- j) b1 n
    peterdocter 发表于 2015-8-5 11:47
    1 }1 K& z$ \7 w% d; l; ]" V7 Zdognoun | noun | verb | verb; |  q1 i6 Z! y- l$ Q$ R
    内跳还是有问题。。。
    $ j& d7 e1 ^3 d0 N4 [/ i9 i  o5 W没有再分析或直接替换成#C_hkz4

    5 H$ q% }/ ]0 R4 [* U  W) [
    6 r8 ~2 |+ [1 W  T0 H4 O谢谢意见。
    " j) I6 S7 z0 |$ u$ Z4 S( ~! h5 t; ?* Z, v% I! b8 b
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。! i- k. P5 @' \5 ?- U7 x

    : D( D/ U# j5 C. u9 n$ u2 I我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。/ P- X. L. ]' [" g
    我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 1915 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:13
    3 A1 }( X' i7 w$ O; t; Y; W' C谢谢意见。& I  k# I  d% A. r5 e0 }
    ( k) H$ M) c5 Z! H1 {- K: W9 N0 y
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。

    5 r% h! M' }$ d' v' m. S9 A- chttps://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:51
    6 R) k" t3 N% w; ohttps://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    % p& Z% k8 J( O0 A您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:03
    . x3 x: J7 n. R  x1 O/ r. \  z可能此词典作者还没有公开过吧。。。
    : T7 S( @4 ~. T/ y5 v- O; s9 m8 w' B( s/ A
    dog
    5 y! B1 {6 @2 _  K
    . r/ F, U7 k# J0 {, v
    谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。! B- B6 d5 {1 W) r" t

    3 z0 d6 D- t+ Z. N您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

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

    : g' _) b! q' V6 J* i# _( F1 C4 `, c4 L  ]8 @5 a
    感谢楼主辛苦工作。
    3 E* d# \4 z8 z  a4 I反馈一个。+ W( z/ _/ ^. f
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。4 E) Q) g0 c, Q1 B
    如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。: ?2 {8 p& @+ h; W1 a4 q

    + _" \4 f6 r& q9 m& D2 k: U; I% `, r* `6 ]

    * Y0 p0 N/ Q0 v& s1 _7 v

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑 5 T4 n' w$ x4 r' P2 j
    Oeasy 发表于 2015-8-6 08:09
    0 J  ~+ j, ?9 M% t* a感谢楼主辛苦工作。
    . C4 s9 M6 m- M  B+ X反馈一个。
      V  ]2 m/ A2 N6 l- Q查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...
    - Y2 \9 {+ l5 w3 F! G& i

    4 s0 l( E. c( V  D这只是个概念验证/功能演示版,离完工还远着呢。( z2 w* x; m8 c& V2 |1 W
    现在专注修改核心,界面等有空慢慢改吧,% Q0 C7 x) Y2 B+ s+ l
    真希望有UI/UX经验的同道加入合作。  B8 M+ g( a4 K4 ]7 f+ [  ?
    ' T8 R. w: k0 X% R
    具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:34& F2 _* d4 a3 u2 t7 u' z
    语音方面,建议支持mp3格式的mdd文件。

    3 @4 o  A4 G6 K已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。
    + m' S/ B9 w  M- H. x' J+ z, c; j0 I% J( F- c
    不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 1915 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41
    8 K; o/ ^- {. _8 N# w6 ]谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。
    3 @' Q/ M- ], \) Z) N: w  N1 e% u1 e- c0 N0 z# C
    您可以在顶楼提到的MDict on ...

    0 v, |2 L1 o5 e  a不错!不过还有一个bug
    & O8 ?7 ~. i) k<a href="entry://dogged" class="C_REF">dogged</a></. ^0 @  z& a, X3 ], H2 x) F
    没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑
    3 @) {& c( X* ?* |, u
    peterdocter 发表于 2015-8-7 13:033 X7 w% y  a2 g- ^% Q9 Y: ^
    不错!不过还有一个bug
    5 n3 Z" ?, v% c, Q* E' `dogged
    ) s# H. G+ ]# _6 m0 T

    , v) Q4 y) `! J1 {  K, Y  Y这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。1 ^. j, W  u2 a. e' ^; l& A0 q
    8 \) C8 p" z* b, `! M. t" q5 x
    当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    ' @" h( ^$ V( U  f/ ~
    $ n9 p0 u1 _3 e2 T( l. K1 }不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。  w5 n5 ], s, H& A4 y( K

    , [: L8 b6 s& |  |" W3 R$ }已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 1915 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:11
    - b: K: f! @. }* `* W这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。
    6 J- P1 P0 F  f6 I8 [
    ' ?5 e/ W1 I3 B# g! K当点击形如 entry:// 非页内跳转 ...

    + @" |: t9 H+ \' W& u再给你demo调试,而且可以连跳了
    0 l4 p8 B( v; S  z

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:18" f6 C7 A/ l: U
    再给你demo调试,而且可以连跳了
    , c$ s& W4 u3 V/ }6 ^. D4 N6 Y
    我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。
    9 {- m: t6 E# F) W, W) M& Q/ S( O
    ' n9 Y+ z& `7 [9 ^7 J另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?
    " [7 z5 e+ @) E. i9 T4 d* [6 `  C+ K0 ?
    ' Q" Y# m/ R7 z+ k, c" Ndogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。
    . H# t2 x, C. K3 c2 J. j
    / j# d$ D1 p; e8 u( r; f回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑
    0 i2 y$ S8 o1 u1 d
    / x, P9 p0 |" I$ F支持!( e/ {- F0 y+ y( w1 V' l
    原來樓主就是因為Chrome插件而開發的# _& J/ t# |5 I" ?. K7 A
    https://github.com/fengdh/ChaZD
    # D- T& }8 H' V. f5 l7 t8 X4 R4 Q* |8 }; {$ W8 h2 [
    今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:51. `% l# A! j, _( j
    词典里面有javascript脚本的话,似乎解析不出来
    0 j3 M& D( c; \' D. w2 f( Y
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:27
    9 K, }  }7 t0 d! m0 x1 D1 V7 m: [, Q5 s原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    ) i0 D( _* ]* @) h/ t, `$ Hhttps://www.pdawiki.com/forum/fo ... &extra=page%3D13 X( G) `( R7 O4 C3 M
    里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-25 23:26 , Processed in 0.076422 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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