掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5471|回复: 35

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

[复制链接]

该用户从未签到

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

% Y' o  N' ?: x$ z# M7 G( k& R2 Y; T7 v$ i4 t8 h
" t/ P$ g/ E* i: C2 v+ L- b& u1 {

  f  I, z5 ]) `% V9 Z1 w

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

该用户从未签到

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

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:04. t1 r& `/ b( K# t
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...
    5 i3 G* y! [  v3 L! q

    / \1 m+ O/ l. w3 H可能此词典作者还没有公开过吧。。。- J1 ?( E  {3 e% z8 X% R
    ' d% W; H7 D% S5 t9 _" P
    dog4 U# O5 I  J9 L0 n
    <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>
    - h5 ]8 {/ i( g& W<hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />
    $ n7 v6 |* r$ y<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>! U6 w# S  R) ^) Z) B9 J2 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>
    8 Q3 B8 b: S" v  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>5 ?1 {4 T9 v! W, v
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>3 H4 N+ t7 ?9 M& [4 L# ]
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>! a8 C# R; l$ Z
    <span class=C_BODY><span class="sense-block">
    ' _" o, c( e# B<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">5 c+ J* i+ c% z3 c' S+ q, k
    <span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>2 g/ P# ^* s, O" B' K  Z1 F! D
    <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>
    . u6 j& q" q" d2 {3 z) f' 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>/ ^+ R+ R3 V8 x3 C, F% K4 z( a6 T4 P, z+ F
    <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>
    % w' H5 {, k' g7 L* 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>8 Z; v+ t5 S$ V0 s2 l
    <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>
    / y0 \- |( l6 O. Z" t<hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />
    + H: D4 \" \6 {& {" Y<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>
    $ |0 y& w4 N1 k" y0 W% A( J<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 K4 A0 b9 s# f7 u3 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>
    + X9 _& c3 w* j6 p# ]  ^' F6 A<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>0 G1 g. A( j. E0 U) i4 x
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    : l: a3 ?2 x  P<span class=C_BODY><span class="sense-block">+ j) S8 u. |" X( M
    <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">8 ^& X/ _  t1 N. q; V- G; I5 S
    <span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>- `+ D4 Y# H$ \5 q
    <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>
    # ~8 ?5 v5 @. `9 F" t<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">! E5 n' B1 e+ D/ ~8 O) v' W
    <span class=C_DCH>丑女</span C_DCH>, N$ m6 F5 S. ?! k4 C/ z# D
    <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>2 w, {4 G3 }3 _& \7 m! c' y" K
    <hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />
    + l1 J+ w6 [# X0 m<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>- i1 G, w: L* ~
    <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># R+ {+ z' ~0 L
    <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>
    9 z- B  T, U1 k! _" I$ R<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    ' ~" Z2 h) I/ `, P<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, r8 r( }$ L0 y2 X<span class=C_BODY> <span class="sense-block">
    3 z& _$ f2 t# j. D& u- 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 follow someone closely and continuously</span></span><span class="def-body">
    3 S# H2 V4 R- _: J7 L- ~<span class=C_DCH>跟随;跟踪</span C_DCH>: X+ g1 U% G! r& X
    <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>% w- J! l& y  x( n' Z1 J0 L/ |
    <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' i/ E3 j  R* N- B<hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />
    . z' v& u8 Y1 d7 e" ~+ Z& C5 O<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 V( T4 ?3 G4 k; G/ o" f' 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>. t) o, S  g& u. c, Z1 x
    <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 \6 a  o' S7 h- M
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    4 F5 L% a% |( C& K<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>( {! p- ~9 ^( k* y& D9 D9 L
    <span class=C_BODY> <span class="sense-block">
    6 O  Z4 k5 i5 h4 P' w<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">0 l5 b0 A  j7 w0 r3 G- W" V  }
    <span class=C_DCH>困扰,阻碍</span C_DCH>. _' D3 l# V: E- E7 i" B
    <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>
    - w: \. u- S" M<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>
    $ W* f$ Q6 F* @4 d</>
    4 M5 R" W% O: o- x% l给你部分demo内容。。。
    " f( E3 r, ?/ S) f! e

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑
    ! V3 i, G5 v- o5 `
    bt4baidu 发表于 2015-9-3 15:36- ^2 L" c& K( G7 l6 [2 _: ~
    https://www.pdawiki.com/forum/fo ... &extra=page%3D1+ V* o4 E8 H% {/ i
    里面的动态功能都是 ...

    6 h, I& z: l( _6 L% Y  p! @- h0 S6 ^! {
    已经修改了online demo,加入了对内嵌JavaScript的支持。
    - X4 {# f% s  u* ^4 Z8 r$ M! ~5 k3 X% y/ m8 s  d
    关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。3 I3 M, ?7 V$ |! C
    不知道你有没有兴趣一起开发?我想做成这样的7 O& D6 M* z6 n* K- G" U$ L
    http://www.hi-pda.com/forum/viewthread.php?tid=12106722 l5 j& x) o- x* L, b; M$ ]* a
    5 @* K+ W/ R) {* e/ y  W5 O9 g
    / A" e6 j; G* l
    有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:. ?* [# p- K) f* [% a+ {
    1. ! ~" d, ]/ {  O4 d
    2. (function _my_code(window) {* ?: ?& L$ x9 J3 _4 k, N
    3.    function u(c, n) {..}
      " w2 |( J' D$ J* m
    4.    ..  ' ]0 V+ C3 z, z. |7 ?9 L
    5.    function w() {..}
      + a0 z' i/ r: x' D
    6.    var F = 0;8 z9 M  W  i( C
    7. 9 m& E; m1 q5 z" e  f0 z
    8.    function i() {
      ! s* S: T$ g$ n" B- }3 |" l
    9.      if (!F) {( F1 V+ R9 J% `
    10.        F = 1;
      ; M7 w5 m, i& ~  e0 M+ _& m: C
    11.        w();
      / Y, z; D3 R2 G$ x
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
      7 G) Q: g* x- i3 _* R, k/ f8 o
    13.      }2 ]( Q+ ~! e; ]+ }: Q
    14.    }
      - ]5 e# u# H& o0 }' T
    15.    if (window.addEventListener) window.addEventListener("load", i, false);
      - I3 M/ c: A& J; M# l/ j
    16.    else window.attachEvent("onload", i);# P1 s) G) P' F2 i9 q1 [2 |
    17.       d1 e4 ?+ M" z  W) t, L, p
    18. }) (this);  /* In global scope, "this" is the window object. */
        ]6 s4 }8 D- u3 J
    复制代码

      e6 e# ~% k3 f) e: o. ?* W: V3 x. \) l. O8 ^2 z& P( C0 H6 s$ w$ U
    具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。. F$ s* z! [% |& T0 }4 ~
    ( J9 G' z6 ?4 R) `
    另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑
    % Z. U: D" n0 e# ^7 t* z* G. b( q
    9 e# s$ t1 D; R7 G
    ' p& J1 G$ ~3 t0 r* p" o0 N6 I* `
    2015年8月5日 11:17:33- K9 e! z' ^) u! u
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。
    3 ]+ K8 Z4 O/ G0 |. q5 D/ o<del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>' P! D2 Y" m2 M$ n+ L3 \9 V
    + g! h% @3 l4 c; S6 G, r+ J

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:121 H1 F  V% b6 Y4 {' g
    想法相当赞啊,不过刚试了,貌似还查不了词噢。
    / Q3 _3 o! J6 U- z

    ' @/ f- s  [% T5 K7 @! L2 x/ @可以查字典。
    8 |9 l/ B; p6 U" O" i% G' L. x
    4 _  t: @6 a0 H3 {, ~7 f, y  l1. 需要先选择本地字典文件。# l2 K* j" S  t0 ~3 H# t
    2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。8 Z1 ?% d8 r- R( J3 {) U( Y
    3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑 * m! r  f, k, ~8 w/ B) o
    Oeasy 发表于 2015-8-5 11:12
    3 O$ g" k8 P  X6 |# `: d2015年8月5日 11:17:33
    + P$ r& C0 x/ t( H; P0 j! R换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...

    9 y/ V; y7 `7 V- y$ [- Y/ G
    3 h, O3 s) n- A出于安全原因,浏览器是不能自动加载文件的。不过插件可以。5 T) k( U3 S( s. W

    6 ~6 y9 v6 i0 w- J, Q8 l, O关于排版,正在考虑允许同时选择CSS文件。' M# [, ~8 W$ ~- d; R  J6 p2 u
    7 C  G. Y4 J! M* ]. |$ `1 P5 v
    IE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 1961 天

    [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>3 h- w+ n3 T* f  [
    内跳还是有问题。。。
    # j( a$ d- f( {) a: ~1 B2 G没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑
    6 |3 F& d# m: t( w
    peterdocter 发表于 2015-8-5 11:47
    ' x0 n/ E" ?5 ^6 i# W" n5 ndognoun | noun | verb | verb$ p  J7 c5 b, J4 ]
    内跳还是有问题。。。
    $ J1 `7 P3 h! a& j* v" q- @# C没有再分析或直接替换成#C_hkz4

    3 u6 t* a3 L+ ?7 v6 o! ?
    ( n: _6 {6 O$ }谢谢意见。
    ! H. ?  g: t. Z9 S2 V" T" a! i/ y3 [- y' ^+ p
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    0 X- K3 T- G% |5 K
    1 N8 V* o  l4 y8 Y' `, @6 `我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。
    * }1 `, s/ c3 [$ [& o: R  T$ I我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 1961 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:13
    $ w( J" T) G* X6 k& Z1 T7 P谢谢意见。+ @% S7 n" x$ k; H  m8 E/ k

      Y  H2 P3 h' t9 C/ u4 j含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。

    . H% M3 b$ {7 h% nhttps://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:51% G, i+ j: v. k' b0 Z5 m. i
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117
    , \5 Q6 z5 W, B8 t
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:03% e# o! I/ X9 |5 ?; M  R
    可能此词典作者还没有公开过吧。。。# j% b* g, O6 V: d* Z: t0 p1 s' L
    / ^: P; f3 C8 X6 b; V! }) n  y
    dog

    4 ^: ]* Y3 w  b) }0 K. J3 D: V0 Z# {& t2 y
    谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。
    : |% ?8 o0 p: V/ p' k5 M
    2 N- ~" C- j3 I& X# Q. ]1 h您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

    发表于 2015-8-6 08:09:24 | 显示全部楼层
    3 U7 Z4 V! D; F8 @" Q0 n3 ]1 p

    / @) a/ k9 y. `- C. x9 A感谢楼主辛苦工作。
    6 ~4 H" \/ C2 M$ C9 ?反馈一个。
    - A) \3 Q0 u9 z0 s查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。
    / X" m' x# M, L: J3 E- o$ p8 c' r3 _如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。
    ; \/ n. G$ e0 P& U6 p9 ~4 c% V3 X! q8 @

    5 A. v) w% s4 P2 v$ ^8 U9 u. \, o7 T; c

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑
    # `( R! A7 ^( W
    Oeasy 发表于 2015-8-6 08:09
    % N1 j* M3 K  N感谢楼主辛苦工作。- ^, F- T, L) [3 t1 y0 a% Q7 c6 D
    反馈一个。
    0 B  \% N3 S: X) N% T4 L6 V查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...
    + S  T+ [) F$ q* J6 B
    4 H* l6 ~( F; \9 E9 N3 e) p2 ^
    这只是个概念验证/功能演示版,离完工还远着呢。
    % G9 u% V$ Q5 x0 ^% F现在专注修改核心,界面等有空慢慢改吧,7 i* g% y, N# s
    真希望有UI/UX经验的同道加入合作。
    & ^# \! H7 Z  Y9 @4 _
    1 A+ Z8 @4 D) N1 A具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:34
    ) ~7 N  l9 `# u语音方面,建议支持mp3格式的mdd文件。
    1 k+ i* Q+ r" ^6 _' S' _# [
    已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。
    & w. d+ j! |5 n# e; {0 n8 J% _) t' J) a& }. g
    不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 1961 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41& N& ]: E" Z: M! h8 W$ G- A
    谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。9 T0 \, O% c" t4 `

    ! a/ Q2 b" ]7 K6 L; ^/ D您可以在顶楼提到的MDict on ...

      F% Q5 ?! N  C2 x不错!不过还有一个bug6 @2 @; g+ T& f3 g8 [( \2 A
    <a href="entry://dogged" class="C_REF">dogged</a></0 J3 ]1 G' n2 a% ^3 q7 Q
    没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑
    3 I9 z+ w0 B( S6 [7 P
    peterdocter 发表于 2015-8-7 13:036 v  }6 I7 p$ k! h3 l/ w2 ?
    不错!不过还有一个bug% z* r6 J) O0 p5 d5 \+ L, e
    dogged

    ; f! Z/ \9 T5 G& h% O* `' X2 b
    3 g. e6 {' b( L/ @# s这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。' L1 s# \8 l$ O$ X( ^. w

    0 G+ Y3 ?7 @) i$ }# b; [* W当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    $ G& N0 z+ _  z. m1 Q7 L, T: a: ~4 q7 Q- D. E: N
    不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。9 N% m+ G0 e; X0 ], X

    5 l# K' @( l! v5 t) G已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 1961 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:11! H  x, }1 z: ~( N: q
    这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。' B1 l3 S3 ^6 G! T+ D" c' \4 k

    ' w$ [% F% e( T. w4 U+ d8 [& P5 W当点击形如 entry:// 非页内跳转 ...
    ) n. x+ o- K( e. _* N
    再给你demo调试,而且可以连跳了 % [- a& n6 P: [( V" b, `9 j! ~. M2 R

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:18! E; C, C) R* d- o. J% X0 P' z. f; a
    再给你demo调试,而且可以连跳了

    ; C7 Z) F& ]7 j! v' O我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。
    3 X  _. E- t# l* s
    7 l) O' Q4 u  Z( ~9 Z9 X: p另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?1 R$ l( z% U. L7 v! J: m2 h, Q
    ! k3 u9 |* h9 `- N
    dogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。: C0 |# q7 @+ h7 w' ^4 ?. l6 k
    % K# l3 N- b7 z; j8 f
    回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑
    & J4 o- B& W+ _+ Q0 O; `8 U; E& p+ E, F
    支持!: ]) }& g9 ?/ ?& w
    原來樓主就是因為Chrome插件而開發的
    ' u% w9 ~3 w) m/ N7 ?1 K/ _4 ~https://github.com/fengdh/ChaZD9 m4 J+ ^: y8 j& t/ L6 B

    7 s& _/ x6 w0 h# A. F% Z8 O今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:517 |* l: l  r7 U2 X; _
    词典里面有javascript脚本的话,似乎解析不出来

    ( e5 M3 W5 b1 R! [2 W( L9 Y2 i原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:27
    0 i/ C! a  Y0 e- Z2 ?$ Z原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    . Z. X( S4 ^3 \) C# |https://www.pdawiki.com/forum/fo ... &extra=page%3D1
    & t* L) \$ d& Q) v9 _: E- C里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-6-10 15:14 , Processed in 0.085124 second(s), 13 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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