掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5247|回复: 35

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

[复制链接]

该用户从未签到

发表于 2015-8-5 11:05:40 | 显示全部楼层 |阅读模式
本帖最后由 fengdh 于 2015-8-5 12:49 编辑
/ X0 r5 y' K- D* S' _, ]( l+ f+ ~8 H& n
我并非MDict深度用户,不过因为想为自己开发的浏览器插件提供本地离线字典功能,结果用纯JavaScript实现了一个MDict解析器。这个开源项目现在仍然开发之中,大家可以去 http://fengdh.github.io/mdict-js/ 围观,欢迎提出建议。这仅是一个在线功能演示,还不是一个MDict在线字典的完全实现。它没有服务器端,仅仅通过网页形式提供所需的Javascript库。需要用户从本地选择mdx而且可以附加一个mdd资源文件,因为不会上传服务器完全在本地解析查询,所以几乎是瞬间得到结果。现在可以支持图像/语音/简单跳转/模糊查询/mdd内置样式文件等等。7 u( I* t( J% a% Y
- r" _& c# {' q% o9 q8 P
我用手头的LDOCE/OALD/Webster/American Heritage/WordNet多个版本做过测试,字典和资源文件支持词条索引加密但不支持需要注”册-码的索引头加密,支持文件压缩(gzip/lzo都可以)、词条链接、语音(wav和spx,需要mp3支持吗)。暂不支持超大文件(>4G,离线维基?)。暂不支持Stylesheet替换(还没遭遇过使用这个功能的字典,哪位可以提供个实例就太感谢了)。只对英语和汉语词典测试过,不知道其他语言有没有大问题。
- v. E$ ^, Q! w! @$ ?" g8 _2 x" j0 b5 Z5 Y0 l( J+ W5 m
我打算用它来实现支持单词管理的在线阅读辅助插件,和WordNet可视化字典WebApp等等。将来可以考虑用nw.js/electron/NativeScript来实现跨平台支持,或集成到如多看等基于WebkitView的应用。凭借现代浏览器的功能和Javascript,比较容易开发和扩展很多有意思的功能。比如,复用其他字典的语音资源,甚至给任意字典加上语音或者替换不甚人意的版本。更容易定制字典式样等等。希望大家能提一些有意思的想法,希望和有能之士合作。
% ^) y( i4 Q0 `4 E5 y0 U$ ]' L8 j' N7 {$ w. S2 [9 o
忘了一点,暂时不支持IE(9-11,因为缺乏TextDecoder支持,已经找到polyfill有空加上),想来Windows10的Edge浏览器(号称全面兼容Chrome)应该没问题。& L: V7 n7 @& _( I
* B, X; ~! A4 g. {+ p0 `$ X
谢谢。
3 r8 N! |( ~1 R8 K' V7 Z- o8 b2 L9 S  m: f! z% x) q
, n3 _( u) o+ H/ C  X8 I
2 C3 {* H+ q0 ^4 X6 B( l8 R2 ?

1 H; m8 F  ^/ E- C5 {* t% t2 N) e
6 k* O: i- X: y+ {' h+ S0 f6 P* g

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

该用户从未签到

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

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:04
    $ @6 E- F( S6 b" d) o# r您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...
    6 T% L8 j, V" H# o$ t" G8 o9 k+ P

    % J, z' X$ v, ~0 B' r5 h* y可能此词典作者还没有公开过吧。。。
    : h9 w# ^: i: [& \4 j1 N; q
    / G+ }. B  D7 s% |6 G$ ?7 V2 A9 ]& @4 pdog1 x( b- A6 G2 \& p0 A
    <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>5 ~4 A) J) k  }3 Z
    <hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />7 y8 h4 G6 M/ R$ @
    <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>
    + g7 T$ h+ C" f& y1 N3 D<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 X6 O. h; C$ `6 f) ^! 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>! q) n' G( `! y6 X% w
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>& C" T" g. D; A2 p0 u
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    & e! k4 v! r7 N<span class=C_BODY><span class="sense-block">+ Q$ g; ]/ U9 J" M2 K
    <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">
    7 b; J7 t5 F0 L7 s% G7 f<span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>
    9 G% U  l+ B& R2 i6 T$ J* G6 [<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>  G* G: N) q: 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>
    + U) t; p# T% u# I<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>
    + U& T- v3 {) ^/ Z' s8 v<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>
    # T8 L7 ?# C) n- y3 U<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>
    ) _3 r& s! o. V$ I1 p<hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />
    4 L) S% L& ?% M) a<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>; L! F+ L0 Q5 Q$ x- s5 ]
    <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>8 |6 K. M, ~$ M7 W1 n* U1 @
    <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>
    ( l; v" ~0 V5 }, P<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    " N, v% }0 B3 s$ o8 n: _. a<span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    * f3 K9 [2 l/ Z, S/ p+ `1 E3 P8 r) _<span class=C_BODY><span class="sense-block">
    ; n" y6 I9 ^* o- g2 t<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"># K+ u& n$ J9 K& i, D
    <span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>0 Q. l5 J8 ^" n
    <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* G3 a" ?7 g* v" u3 x- H<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">
    % ]* Y5 M3 @$ D4 p<span class=C_DCH>丑女</span C_DCH>; X9 X  i, Z* ^( X+ N. 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>
    7 s5 l+ {- y* A0 E7 B" \; [7 X& t<hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />8 m& Q  k2 H9 t
    <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>
    7 Z$ u$ X& @) V) S1 J3 B<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>' \: o" Y' z  m" F
    <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>
    # C0 I. l/ X  A, D- j<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    ; z# Z3 q4 g; ?& K$ a<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>
    % F6 [( G5 V4 z" O; y<span class=C_BODY> <span class="sense-block">& V4 L% U: X" m0 ^; P
    <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">
    + G4 ?( k# k1 @! L5 h2 k! [  i8 m6 e<span class=C_DCH>跟随;跟踪</span C_DCH>3 a# \/ ]7 G! d7 R
    <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>
    - Y2 M# O; {3 S8 }8 P' r9 k<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>" f: h% e. K2 n# V; t( I( C% E
    <hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />1 j9 }2 O- \7 |7 D
    <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>0 Z9 d$ l2 O1 u) c& w" F4 T. Q$ 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>. B* ?2 e. l$ e1 U. ?2 Z6 @
    <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>+ t; z) P, d( Z$ _
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>  e7 `2 C) N3 Y: x6 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>
    $ R6 k6 ~4 e/ F  N. N3 k: r<span class=C_BODY> <span class="sense-block">1 P" j& @, \" F5 O) 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">to cause difficulties</span></span><span class="def-body">
      U8 U; y; |( x0 o' F<span class=C_DCH>困扰,阻碍</span C_DCH>
    1 z! ]4 V2 r" b. u% 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>4 }5 k8 E( R2 r2 ~2 J  a* {) r
    <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>
    - m6 g2 d$ m2 A5 a</>) t/ p7 q& g4 p! b' s
    给你部分demo内容。。。
    4 Q9 W$ Q0 X1 f+ A. _

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑
    $ m0 @& P! n- {
    bt4baidu 发表于 2015-9-3 15:36$ ~2 \! B( K6 O# s5 X% Y
    https://www.pdawiki.com/forum/fo ... &extra=page%3D1* t8 N8 ^9 z% z* t8 D* `
    里面的动态功能都是 ...
    : E! }* ~: T& x& L( [  w' Y
      r/ ]* C% B& {2 \; d7 N
    已经修改了online demo,加入了对内嵌JavaScript的支持。
    3 O/ a5 e) J* c& M4 d5 e
    % V) Y; L& D; S( a. K- X关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
    / `- f( K. p& _% b5 c! X: G不知道你有没有兴趣一起开发?我想做成这样的: E( I/ m+ m! u1 |
    http://www.hi-pda.com/forum/viewthread.php?tid=1210672
    7 H5 |  d8 O( M; N$ t' J) M! \: C) y4 _

    1 p3 b5 ?8 D/ O) |  Y6 ^有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
    , S5 G3 V! m4 Z% l( u* O- _, B

    1. 4 y8 Y5 F, w- M' i. U$ C
    2. (function _my_code(window) {
      , D# {" [2 v% D6 b9 D
    3.    function u(c, n) {..}: d8 b" O( [: O, t$ U
    4.    ..  
        n7 u+ d; V* j! [
    5.    function w() {..}
      9 B( x) X4 Q% g8 ~: `5 x
    6.    var F = 0;
      ( h6 k" h; \$ p. {7 I

    7. ) C: d" N+ a# v5 a% q* k
    8.    function i() {
        p# ]+ x7 Z5 w. i* H
    9.      if (!F) {
      * L. H& ~& L- ]' S" r+ J
    10.        F = 1;
      6 ?; E5 k" l( D: n7 d
    11.        w();4 C/ n# |  l" [) r
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);; V+ P' ^! c7 B5 G2 T7 \! ~
    13.      }( g* e1 u  z8 V- G
    14.    }
      0 C2 O, c9 K, \  U, q$ Z9 k7 ~  U
    15.    if (window.addEventListener) window.addEventListener("load", i, false);- G, M, T" S& o, j; f; Q5 I8 K# J
    16.    else window.attachEvent("onload", i);. Y, ]4 {% Z& L: [4 u) j/ e9 l" G) A
    17.    
      + Y5 d( ^7 U% k  U$ F
    18. }) (this);  /* In global scope, "this" is the window object. */
      + k" C7 i8 S5 D3 \8 r, _
    复制代码

    7 I9 a4 _- m9 a' \* _
    $ A8 ]* o5 M9 ~5 J具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
    3 W3 v: B0 {# x
    7 K0 c3 {. ~" A% q8 A另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑
    3 \8 \( L0 F! y8 {' ]0 d" N- T7 Z# j' M, _1 F  v( D: g1 x& E7 M
    ! L$ ]$ `: a# y# w. U
    1 M1 P9 o. S0 V& D' G- y
    2015年8月5日 11:17:33. Q# `- x# j: z) C
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。
    7 m5 u) \8 Y; n* l<del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>
    3 g8 }3 l' ^3 v# ]9 t" _% t3 c  O& i: _" v6 y

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:12
    & E8 j/ U9 E9 ]4 S想法相当赞啊,不过刚试了,貌似还查不了词噢。
    + V6 \$ X6 P, ~

    & h9 f5 n; q3 \可以查字典。
    : Y' q( J+ i8 Z1 V: T- C, G$ [
    ' c- z* g- f- ]7 R. q; y$ W$ ~1. 需要先选择本地字典文件。
    & R! [7 p( Y0 u( U7 V* p$ f- x2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。
    4 e( I% g, J) f" A  w) x' [3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑   U+ H' A6 J/ k7 y3 A: M
    Oeasy 发表于 2015-8-5 11:125 b  M  W/ z2 g. s- f- T5 q! @. L
    2015年8月5日 11:17:33
    1 R6 G% v0 {2 I: M, C换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...

    8 @& b0 K. g+ g' ~% B0 n4 I+ @, r) P, U* F
    出于安全原因,浏览器是不能自动加载文件的。不过插件可以。
    - o/ v' @$ l& l6 G  T' O( |
    - @* S- G& G( Q关于排版,正在考虑允许同时选择CSS文件。
    , R+ s1 d/ r4 @5 S3 P# n& }5 U; _' J$ M2 G% ^7 F. S
    IE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    8 分钟前
  • 签到天数: 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>; L% c* d' b. R  i
    内跳还是有问题。。。$ {. i, L& L& q! L# x# w5 |! r
    没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑 ( U' W% }  \. O$ g
    peterdocter 发表于 2015-8-5 11:47) d0 T& N/ o: ?% c- Q
    dognoun | noun | verb | verb6 k, F$ x  X1 o
    内跳还是有问题。。。! ^, e/ |, N& O
    没有再分析或直接替换成#C_hkz4
    . Q. ^% w9 P9 |- u: }
    4 i7 G% ?: e* l) M# X; w: T- L! b* p
    谢谢意见。, I. }+ v# s- N& \

    ! X, E/ O5 u2 A9 P" i0 C含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    - ?- j- R, W/ l& e& R2 H8 m3 S# J# B- h3 n! \) B
    我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。
    3 N" r* U; J( c, `6 d" W# ^# k我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    8 分钟前
  • 签到天数: 1916 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:13& z) K0 M, m8 O. _, m6 G: S
    谢谢意见。  ^% I: B# j! Q: O: p
    4 c0 {$ r6 V' D
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    # A8 ~: J; V5 |$ [
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:51
    ( _! i# s% b+ c) M' X$ y4 T0 Z' p/ qhttps://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

      ^/ |7 k( u3 G- j0 k; a* a您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:03
    ( Q4 |& N3 p) W- N8 A) X$ N可能此词典作者还没有公开过吧。。。
    " m. g/ p; R0 W" w. I; r# {, B
    . b9 Z' F# H" J8 Adog
    , _) |  Q" S5 }$ g! D' K

    , X: a! N$ ?6 O8 ?+ n5 W+ u1 ]8 Y- H谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。
    ) S  v: k0 ^* s6 [! Z
    4 L6 s4 ^8 B3 u- t( {6 g8 D! t您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

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

      t1 f! F/ A$ ^$ Y$ |. a
    * f  F" J+ P5 F# {感谢楼主辛苦工作。
    ! R- E5 h$ ?  W* h: X' A反馈一个。5 T3 U5 k/ j8 d
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。
    / m+ w& E( J& K( R  F9 n1 s如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。0 O7 F, L# C+ F3 ?% a( g" x

    " e; S9 v' d, U& D9 b" S( \1 C
    $ e( b* i1 F3 X/ T3 {
    + L  R! N  l# _9 |/ V. A& T

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑
    - v- d0 G$ s8 E; N8 A7 p" n9 q2 t
    Oeasy 发表于 2015-8-6 08:09
    % R9 |! |6 F! [% _感谢楼主辛苦工作。
    * k9 ]* m  U7 V1 X6 ]反馈一个。
    / [( u( j8 K* m1 v: `$ ?/ H! F7 I+ g查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...
    # o  H# }: q) q

    . R  V* u% _" ^$ m& V这只是个概念验证/功能演示版,离完工还远着呢。  a; I, L5 @/ F$ P
    现在专注修改核心,界面等有空慢慢改吧,1 T% ]8 ~1 E6 \8 o/ p( n
    真希望有UI/UX经验的同道加入合作。8 [4 x: x5 J& n' E8 {7 a

    ) n: m! b% Z* {* |% z$ Y具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:34
    - r' R; P! [: t1 ~1 H# l语音方面,建议支持mp3格式的mdd文件。
    # S- T: s" ^8 ^9 Q% k" L. J
    已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。. y, p' K+ B1 F% X" W+ ~; @+ Y
    : @) r+ {) a2 t; s. ^" V
    不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    8 分钟前
  • 签到天数: 1916 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41
    $ {+ L9 Q8 k$ a谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。" d, E+ q$ t' V5 T
    ( M7 u8 k% y+ R
    您可以在顶楼提到的MDict on ...
    + U+ ]1 D3 B4 K# c. A& W
    不错!不过还有一个bug0 i4 A, @" r+ w2 |/ W6 }* J$ H
    <a href="entry://dogged" class="C_REF">dogged</a></, @) D( v) R5 \$ J% V% X3 ~+ U+ h
    没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑 & B) U, b7 S  M$ o
    peterdocter 发表于 2015-8-7 13:03
    # n' C8 L1 M% W不错!不过还有一个bug
    ( D/ }! M2 y  cdogged
    . G4 Y$ `$ ?, j  m' Z# ]

    % h4 E. c3 d1 U, q  K) b这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。. b/ l& q' m+ z$ C8 |6 m6 ~

    1 C0 ^2 _+ G; h, \% |! I8 P当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    * \! T- h0 I$ B! P! a6 |6 B1 M0 v+ Z1 [/ ?& X; E, V$ M4 }: |  j8 F  R& F2 t
    不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。
    7 Z! `% ?5 i4 b- Y
    ' w' b# ?, Z+ K' H已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    8 分钟前
  • 签到天数: 1916 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:11' Z7 {. {2 p( y' {4 i
    这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。
    2 `' }' P( z+ A7 ]5 M  q/ f1 S4 g, E$ T1 f# n
    当点击形如 entry:// 非页内跳转 ...
    # b$ I( E2 T0 b! D% [7 I
    再给你demo调试,而且可以连跳了
    + X9 J, V$ R8 _7 m

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:18: r& v5 [0 D/ U" A- W9 ^( u
    再给你demo调试,而且可以连跳了

    4 \- f! n# U' ^" A: ?. |% S我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。; l# X, I2 o+ C; W7 N+ y

    " m9 X$ k, x" Z+ }, o另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?% {% w: C* g! ~, v. h; @) t
    + \0 F6 l; V0 }- E- a7 F% L
    dogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。) h/ v# Q+ x0 e

    ; l  e$ x5 d% ], `: l回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑
    2 ^. G; j/ e8 ^9 ]! _# Y' g* o$ @, u7 a$ g0 s, L3 l
    支持!- k3 ~' K' g  @* I# x: }! j1 t
    原來樓主就是因為Chrome插件而開發的! n* S/ R( K* f
    https://github.com/fengdh/ChaZD
    % j" g3 @8 Q( A8 M3 t, Z; G1 }6 D5 ]  Q4 x$ |
    今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:515 u( [: t, k* j1 Z
    词典里面有javascript脚本的话,似乎解析不出来
    8 L; ?" I& v7 n+ l1 ]
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:27& t8 N% R& F2 A6 U
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。
    * ?6 Z2 R2 k1 T) h' [8 A( e1 G
    https://www.pdawiki.com/forum/fo ... &extra=page%3D1; g) j; F$ n+ {: \; C
    里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

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

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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