掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5231|回复: 35

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

[复制链接]

该用户从未签到

发表于 2015-8-5 11:05:40 | 显示全部楼层 |阅读模式
本帖最后由 fengdh 于 2015-8-5 12:49 编辑 3 U4 D8 [# g' f2 g% o

3 K2 g# ?9 v/ i8 B+ |我并非MDict深度用户,不过因为想为自己开发的浏览器插件提供本地离线字典功能,结果用纯JavaScript实现了一个MDict解析器。这个开源项目现在仍然开发之中,大家可以去 http://fengdh.github.io/mdict-js/ 围观,欢迎提出建议。这仅是一个在线功能演示,还不是一个MDict在线字典的完全实现。它没有服务器端,仅仅通过网页形式提供所需的Javascript库。需要用户从本地选择mdx而且可以附加一个mdd资源文件,因为不会上传服务器完全在本地解析查询,所以几乎是瞬间得到结果。现在可以支持图像/语音/简单跳转/模糊查询/mdd内置样式文件等等。
2 v! |. }3 V8 ?6 ~% ]$ @% v* G
& r; \( p8 Y# D( m& O2 U# n我用手头的LDOCE/OALD/Webster/American Heritage/WordNet多个版本做过测试,字典和资源文件支持词条索引加密但不支持需要注”册-码的索引头加密,支持文件压缩(gzip/lzo都可以)、词条链接、语音(wav和spx,需要mp3支持吗)。暂不支持超大文件(>4G,离线维基?)。暂不支持Stylesheet替换(还没遭遇过使用这个功能的字典,哪位可以提供个实例就太感谢了)。只对英语和汉语词典测试过,不知道其他语言有没有大问题。
) r* V) e! e. B$ ~( H) A# o2 Z& ?- A0 E1 r; Y- i- v% K" f1 P7 ~
我打算用它来实现支持单词管理的在线阅读辅助插件,和WordNet可视化字典WebApp等等。将来可以考虑用nw.js/electron/NativeScript来实现跨平台支持,或集成到如多看等基于WebkitView的应用。凭借现代浏览器的功能和Javascript,比较容易开发和扩展很多有意思的功能。比如,复用其他字典的语音资源,甚至给任意字典加上语音或者替换不甚人意的版本。更容易定制字典式样等等。希望大家能提一些有意思的想法,希望和有能之士合作。
* X3 ^7 ?  ?! D& R: g! C8 r" |  _
忘了一点,暂时不支持IE(9-11,因为缺乏TextDecoder支持,已经找到polyfill有空加上),想来Windows10的Edge浏览器(号称全面兼容Chrome)应该没问题。
' s6 u0 L$ O0 ~! ?: R1 N' Y1 J( ]0 T$ p
8 |/ F) f! J# N1 B2 r$ w谢谢。  H3 O; R$ S2 P8 Q# O" i1 V

2 ?8 h" D# Y% Q9 p% I3 o! A5 |! D  ]8 T# k- y
- N- W; h0 C# V! o
1 x/ d: O: c- j7 `. N
" A  @) Z. n# _* K( P+ d& O8 S
& n' i2 U( ?( V2 W( G

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

该用户从未签到

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

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:04
    " @6 L# q) P" Y' W" W您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...

    3 N+ A) [! ]6 r8 C# X5 L: a. D* y& }8 C' |
    可能此词典作者还没有公开过吧。。。
    3 Z6 J$ A4 Y. L% x8 K. k4 A
    & f* h6 `9 @% z: w2 ~dog
    / s% {- ^9 _3 n1 i1 f# u$ R1 |- G<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>1 d' R( r" ?1 f: g6 y' U9 j
    <hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />
    % J; q! z3 p9 K' f: {+ c<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>
    - Q7 u( o! U2 \& {6 q5 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>" X( ^& V3 B1 U
    <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* D9 c. D- n9 J
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>% M2 G( q# H5 k4 N. D
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    ; W9 j3 k# T3 c  u<span class=C_BODY><span class="sense-block">
    8 U. ?6 q  C, a<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 u. i% S8 z: ~1 F: l! k* u. c<span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>
    ( }- G. }# C- k5 I<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>
    . t* v/ h5 ?. _% g; C# a: S$ N( j<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>
    ) Q+ d4 D# [) k$ T; H7 k5 T' o<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>: f  D& f1 }5 S2 T. |$ t+ t
    <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>
    7 f; n1 K7 `& k9 v6 J' r& X8 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>3 S# q" A; G( u- i! ]9 d9 Y
    <hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />
    $ {' W$ Z3 V$ r- q" K& u  M<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>9 ?+ Y. P2 F7 `
    <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>
    2 Q, R- U# d5 U  d<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>
    ( C7 V7 u% ^: L2 u6 Y- a<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>; K5 l' m6 c( V. a
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>2 ~1 P$ G" J9 q: R7 k
    <span class=C_BODY><span class="sense-block">* @* d/ p. l; g8 `5 p: a
    <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">
    9 l; E$ k2 v. U% e* F. ~<span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>
    . T7 B: @* a) s7 Z' L<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 X6 a; D7 c$ d<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">
    8 |# z/ ~; K" G9 S' e) L4 V! c- [; F<span class=C_DCH>丑女</span C_DCH>
    . C5 q9 e+ O( x% p5 [% h<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>
    ' G" q7 @) R5 z8 K<hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />
    2 C. K5 P: P% M- 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">FOLLOW</span C_GW><span class=CD_CH>跟随</span CD_CH>
    3 J0 a+ B: z. b) R" h' I: o5 @8 Y<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>5 H/ v, c0 A0 F3 E/ M) f6 U
    <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>1 e3 u8 u& W# B* t; q0 t4 b
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>- C: a7 u5 u5 y3 w3 `5 g
    <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>4 Q' Y" B- Q# W
    <span class=C_BODY> <span class="sense-block">
      O. j9 L2 d5 i" Y<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">1 S' u) E2 o0 E
    <span class=C_DCH>跟随;跟踪</span C_DCH>% v6 Q) o2 }% d3 b
    <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>; w8 S7 L9 C3 ]0 _7 c8 t$ Y% Q( m
    <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>
    . X3 d/ b0 U" I<hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />
    ' g, w$ t8 X/ p5 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>
    2 q3 A5 G# S8 Z<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>+ C/ \) Q, ]- [4 K9 b  j
    <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>
    ! W' k; u5 t/ g- S( l<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>3 N* I1 I# ?2 T- E3 C* u" D8 ^
    <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>3 {8 M5 F) }3 w* i/ b! t
    <span class=C_BODY> <span class="sense-block">! z6 r. L9 S6 W5 D) f$ G4 O8 q5 E
    <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"># ]# q$ c/ i6 F0 B: T! P
    <span class=C_DCH>困扰,阻碍</span C_DCH>* l5 K4 l6 ]7 Y/ z8 G. r6 c' ~5 j0 [
    <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>/ t8 L5 G. Q5 I& i0 t& P' e7 m8 H  G
    <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>
    / S9 o0 E7 u2 {1 l  C7 Q' `</>
    & q& `. L6 @& u+ c+ T  P" s' i给你部分demo内容。。。
    ! B4 \. a/ v2 u/ `7 M, T# R

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑 5 V- P1 \: m/ }& z: p
    bt4baidu 发表于 2015-9-3 15:36
    " R5 b8 ]% i. a" jhttps://www.pdawiki.com/forum/fo ... &extra=page%3D1
    5 L$ m+ k9 c9 }$ L2 @  Z0 y里面的动态功能都是 ...

    ! a: X! r  W; t( A
    * ?' j4 w, E" k0 s% S* \: v已经修改了online demo,加入了对内嵌JavaScript的支持。# i6 T& A0 K8 ?- f$ R

    * F7 J% |9 c3 K9 M关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。9 K. p3 M6 G5 s; D# k  _
    不知道你有没有兴趣一起开发?我想做成这样的
    8 y! ~& w) g! j2 N' d3 Hhttp://www.hi-pda.com/forum/viewthread.php?tid=1210672
    / F: u- S0 d6 Y/ h
    $ j' F+ O/ k; C) I
    6 O2 K4 C1 ]' s2 C( s( A& h; o有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
    ' o; ^: G! r- d4 C% F! g2 N
    1. % M( A$ B2 r, i! I# k
    2. (function _my_code(window) {
        N" ], ^2 m, v5 N; S3 y9 U1 a# _( h% B
    3.    function u(c, n) {..}5 [) d& G) N8 `. R2 h
    4.    ..  
      ) m8 `& a9 b% r5 {/ [
    5.    function w() {..}
      & ?! o& L, q- |+ @+ s' Y
    6.    var F = 0;3 c6 a: [, M3 Z: x2 j
    7. # I1 {1 H9 {' s5 h0 p1 r
    8.    function i() {
      * x+ w7 q1 Z* W0 l
    9.      if (!F) {: L9 Y8 I* \7 Z& A1 _# K9 p: z
    10.        F = 1;
      7 v/ S2 q7 s) x, M5 _6 b% J
    11.        w();
      + R$ m- S) c! Z" I3 k
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);' }5 P1 |- e) e, z6 M7 _3 U
    13.      }
      % ~  u& N) i1 c7 t. n8 Q
    14.    }& b* @& R  r5 ]8 `/ J' A
    15.    if (window.addEventListener) window.addEventListener("load", i, false);
      ' V4 B# T- O; G2 S2 `/ Y
    16.    else window.attachEvent("onload", i);
      ( D4 [3 J$ w* ]  V
    17.     0 y7 W! U& `7 |2 v
    18. }) (this);  /* In global scope, "this" is the window object. */  g5 D( ^3 p9 m% C1 N  L
    复制代码
    ; M3 h4 W: j+ F% |' K& P# G$ c6 P
    & t9 L0 r2 _" u/ y! ^4 x
    具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。% g; O& I" K4 i+ ~; H

    4 W: N" m& x& f' H另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑 7 e5 B8 M" V# F  J# u$ ?
    ' t  F% v  d/ V% @8 U- f
    . A9 Y; n. X+ |( y
    : R; X2 o4 Z$ |! M
    2015年8月5日 11:17:33( G. M& F; C/ D- S7 K* P
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。7 Y  U! m1 w3 T* L; {0 X8 A' [
    <del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>
    & r( j! e3 y0 b5 x( g/ o: ^/ X) u) R

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:12
    0 I+ V: l1 y' R8 y$ T& F% T% `1 a想法相当赞啊,不过刚试了,貌似还查不了词噢。

    # U7 s. K: \) j4 B  j" S& ?0 ]; b, O4 {& x/ P$ Y5 K3 h+ p8 N
    可以查字典。( x% b# }! s6 H0 K$ {6 \* n6 Y

    . l7 w3 J' ?; G' S5 ~1. 需要先选择本地字典文件。( [) l# z$ t; ?! b. h
    2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。
    0 @; A( E8 ?* Z( l. C" x3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑 5 ?# u+ C8 ?2 O: ^/ r
    Oeasy 发表于 2015-8-5 11:12+ n0 \# ^' J0 H, f
    2015年8月5日 11:17:33
    0 [& p( D: y" n/ ?1 @换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...

    ) e5 P# H% k7 I) n( ^8 i
    ' m' `! H1 k) j: x# i* d出于安全原因,浏览器是不能自动加载文件的。不过插件可以。! Z) a% y" k7 G& \  B

    . J% f+ {! Y" C! J0 X! q: s关于排版,正在考虑允许同时选择CSS文件。
    6 |% Y: q1 O+ W/ F$ }3 j  Q* \" ]( d, \  m
    IE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1914 天

    [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>
    : A* C( G$ O" h3 K1 A6 G内跳还是有问题。。。  _4 G( ?& C4 n9 M( k/ ^
    没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑
    : W' ?3 s# `7 q& F- E' O$ g) @) B
    peterdocter 发表于 2015-8-5 11:477 ?" {, p" g4 @2 W/ K* N. T
    dognoun | noun | verb | verb; J2 x2 W9 F/ j: t5 ?% Z) J* ~6 [
    内跳还是有问题。。。
    . T: q2 r; b! w. I没有再分析或直接替换成#C_hkz4
    ' b( [. ^2 n$ A/ S6 y

    . Z* D0 R- Z( }% @% ~  T谢谢意见。
    9 O5 P6 n, d0 S6 A' R( ~6 d: s# z. C
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    8 ^8 d+ W, G0 z5 i5 R
    $ t" L8 E* Q: m! G( U5 J我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。
    6 o0 Q! I7 b1 s& j5 @# C- d; H我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1914 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:13
    " s. l5 S- s' X谢谢意见。+ ]; b8 q- _0 e# |
    8 d5 T) c( l. R) T- u, `) }: @
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    % }8 O0 [4 J8 D$ h2 d
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:510 ^" m& ^1 g" d- [
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117
    8 Q$ \& u3 W; p. o2 p( x
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:03& a& K5 O: H; d! d, i# Y& ?4 g
    可能此词典作者还没有公开过吧。。。
    6 r# x" ?: ^) g
    . V% V) x/ i/ E4 hdog

    6 q  B0 {- l  q# @+ D5 I9 Y6 k% \' G% [! v. I, n9 E& O
    谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。* P3 N- p* s" z2 |- e+ E

    " e# u8 d5 o1 M$ N0 B您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

    发表于 2015-8-6 08:09:24 | 显示全部楼层
    : }" c# Z# J1 d& O; h) t

    ) i1 C. S+ Y: z7 M; B% z感谢楼主辛苦工作。6 j. E/ F. L( e! x- T! q" L
    反馈一个。* U- Y1 {8 T0 {  i. G
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。1 `" l6 g9 n) \* e3 S$ W
    如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。* N) ^! r( n+ B$ c

    / ?' s6 t9 }$ C+ F4 C# C" @; N$ k8 K* p7 n

    - \/ \8 K) |; r2 Q

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑
    " R* P4 F# v, n7 D) q* v
    Oeasy 发表于 2015-8-6 08:09( {# Z! b+ h( b' Z8 j" T
    感谢楼主辛苦工作。
    " J6 l  `( I. }: \. r$ q6 ^3 H反馈一个。
    : G& y5 \% u8 k; x! ?. {! c3 M: q查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...

    # l. B* G5 m* q# r# h5 K5 E% W
    3 w, A% T" U& V8 e5 Y这只是个概念验证/功能演示版,离完工还远着呢。
    $ f- i- t* D: f6 t8 Q: C, r现在专注修改核心,界面等有空慢慢改吧,
    # A" D4 Y; [5 O3 R8 U' M真希望有UI/UX经验的同道加入合作。! C" ?4 Z0 Z. ]7 J9 h
    ' Q: j6 M0 O! L9 I3 u2 T4 t
    具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:343 V( G: ^! E# g! P1 c4 i
    语音方面,建议支持mp3格式的mdd文件。

    , ?& E$ I! J/ \& w7 }8 z已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。; s& G/ h* y' _( a) _, o
    ( A: |( F9 ^: W) n# V8 c* S
    不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1914 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41
    ( j4 O2 `- J' G9 I谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。
    8 M, l4 Q' G) B! ^% T
    % Q! U/ d( \: g7 X  e7 K) Q1 ?5 r您可以在顶楼提到的MDict on ...

    $ W; s, |- v7 d( c6 ~不错!不过还有一个bug
    # O* W3 s  \5 j3 e+ z! F<a href="entry://dogged" class="C_REF">dogged</a></
    7 Q. l. o# B& q( e5 K没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑 4 M9 N( z2 M8 {: ?4 V* a# I! Z
    peterdocter 发表于 2015-8-7 13:03" u$ ?* P8 f8 _7 G" Z
    不错!不过还有一个bug
    : l, G/ P8 p2 |, e: U7 Y, Jdogged
    & S# i: ~% ^7 n2 e

    ; c  N) g, R; `- P, I- B这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。0 Q+ `6 S; Y5 K, Z3 A& \
    6 s# {9 |/ W# C) `! P$ o
    当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    1 P: |% ^# b2 h9 J$ t  T$ v& v5 p4 U, S, E* q) u
    不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。
    ; ^5 C' n! ]- Z9 @/ W1 [
    0 E/ ~. a8 f* n6 {; s# i已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1914 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:115 N9 Q0 L( y4 m7 h- i: N
    这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。8 h* ^- v& k- ?/ N; ~1 J0 p" \1 O
    . y& B: h5 C$ g) ~! ^. q; X$ I; {
    当点击形如 entry:// 非页内跳转 ...

    : h7 Q7 Z6 Y* U, g+ X. f/ B1 W再给你demo调试,而且可以连跳了 8 r3 L" }; ~' O# ^( j" a

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:18
    ! X2 ^0 [3 z4 a# S$ l& d- L6 W/ m再给你demo调试,而且可以连跳了
    ' m. H$ n5 h/ U
    我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。
    6 f& E9 X( H! [# C9 K9 j$ C
    ' H, s* N+ W6 u/ D- b# m- f$ c另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?# \- ?2 m9 J6 a% J$ k/ Z7 K
    7 ?2 e6 r* T/ Q+ \! U3 ^- A) X
    dogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。3 r0 T1 B! h$ K% e

    ) o) ?0 @& J, K5 Y' ~回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑
    % Q5 H$ f, D" H4 q( X& m* H& m" k
    3 d) E( Q! }: D. c支持!9 z$ r7 Y! g& r. Q! ?- d2 k
    原來樓主就是因為Chrome插件而開發的7 S# n( V- P* M
    https://github.com/fengdh/ChaZD9 q/ T: F/ Z7 N
    : k. d* d' V+ s! u0 X% Z8 z
    今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:51
    5 F0 f5 N, _0 ?0 C) l词典里面有javascript脚本的话,似乎解析不出来
    % \: F5 {; i2 n4 I" M' T
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:27
      x9 m* `* ~& _: r1 z原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。
    9 l9 g( E% i5 u: X* r4 {
    https://www.pdawiki.com/forum/fo ... &extra=page%3D1+ c) i) U8 H0 d* t
    里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-25 09:17 , Processed in 0.062931 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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