掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 6884|回复: 35

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

[复制链接]

该用户从未签到

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

; \2 W- W3 G) C6 u' V谢谢。
& N" K/ Z  }8 L! O0 Y+ ^) q4 A

$ S6 n1 m/ ]% }' l( ]3 B' e3 L9 W! v0 t7 U. r
2 B1 _5 M6 E  i+ s3 a0 H

! s& m$ [: b- v4 k/ a6 _
# v! K/ H. K) q

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

该用户从未签到

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

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:048 @- U& \4 M' J" ]5 j5 P! g
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...

    7 p- e" O& @, M1 ~/ y1 {  ~
    0 X( `7 F$ Y2 ^* D可能此词典作者还没有公开过吧。。。0 u9 b, c% k$ r/ K+ T) ^) s
    / {9 @$ s" u3 i! e) K7 }- t
    dog5 I) L) o+ F& P# [
    <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>
    3 l$ ?$ t, w$ N<hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />; m& X2 s' Y; e$ H' {
    <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>
    . ]5 x  O; I/ b, o( K6 t/ }4 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># w, e+ R2 S" k9 t: ^9 U5 R
    <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 f# S* ^) [' {6 R3 ?. X' c<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>4 |, U2 E; Q/ q* d7 u1 U
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    ) q3 v, O3 l- k* D7 z- m<span class=C_BODY><span class="sense-block">' `# e% K+ t" Q5 l) [) q
    <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">
    * F5 E+ J- @% P+ M1 \<span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>& ^; t+ v( _* D0 l6 ~  F
    <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>
    + \4 q3 j( _: D" F8 @5 x$ A7 D<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>  e3 X' x! W; B: q1 h. [9 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>1 Z) N3 U0 ^! K% n+ g- g. H' X
    <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>
    " L& L. k: t! g- w0 P) F<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>; Y! s: U; t, Q
    <hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />. ?1 f% j' ~8 z- X1 P$ _3 _" Z
    <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>
    ! p+ I4 ]) n1 w- [9 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>
      Y& a4 z( \" s& ?- [7 _<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>7 y- x  L! j" k& e) p
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    , u1 R( K  s/ N/ z<span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    " q) O5 |% t) d5 q. V<span class=C_BODY><span class="sense-block">3 B% @& {7 I) i- z$ B! V4 h
    <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">3 d( X5 C7 f- t$ x- a( n$ {& N7 h
    <span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>1 ^- G+ B5 l( g6 p0 F/ Y/ V
    <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>
    " J* M# t; \0 ?% s2 t, b9 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">
    3 `* j" W8 E3 ]6 a5 @<span class=C_DCH>丑女</span C_DCH>9 \4 x3 E' G* @+ z) ^8 U
    <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>9 s5 H& w- S, H1 x1 t6 L! U
    <hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />
    % g! ~+ a1 X: U: x- h; f" W; w<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>
    5 F6 N8 y( `6 E+ c  d$ _4 A! o; 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>
    / q% X9 E$ A9 V5 Q/ z- }5 |+ 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>: y* V5 S9 d: s
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>& A9 ?) Y) v9 h% n7 f7 D* P( j
    <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>/ `0 b% b6 Y" E* M$ Z/ c
    <span class=C_BODY> <span class="sense-block">
    : y( [9 `# P3 `* V% E3 A# |) j/ o. 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">5 a+ D0 k; g4 P& @6 Z- c
    <span class=C_DCH>跟随;跟踪</span C_DCH>
    & n. X/ I, h; K<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>
    4 g) I3 Y. I, k0 D* @) }<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 a% F& s* v( x! @
    <hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />& l# n5 O' c4 e4 r# p
    <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>
    1 d6 j6 w1 C! K  ]: R, Q) 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>
    5 Q% q$ G: [* O! B) p<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>
    " H* z0 W' k0 O/ `5 J0 w<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>9 O( y4 j7 g' 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>& d( O  C+ E0 }# r( n
    <span class=C_BODY> <span class="sense-block">8 o6 t: ?) j8 z- v/ ^. W( 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">to cause difficulties</span></span><span class="def-body">
    5 j1 B! K" j( c/ d* v; ]<span class=C_DCH>困扰,阻碍</span C_DCH>
    & g2 v6 k, ?3 V) e<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>
    6 @6 ^1 g5 p; s<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>
      y- S9 f5 k- F" f7 T8 J</>
    2 g) H% Y* a, M3 W给你部分demo内容。。。: B& j) i0 H; H/ G) g- G. I/ n

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑 3 g3 s/ V7 ~8 o& [6 y
    bt4baidu 发表于 2015-9-3 15:36$ s$ }1 g! J# _. H8 Z: F# `
    https://www.pdawiki.com/forum/fo ... &extra=page%3D18 z& L) r7 y+ H3 {: M
    里面的动态功能都是 ...

    8 u# ~3 y7 q& H  y/ h- U% N; \6 o* j9 w3 _
    已经修改了online demo,加入了对内嵌JavaScript的支持。
    % R) a0 x, z9 A: E3 X6 Q$ j' S4 W) a; {$ q2 ~$ f  i2 L# A  \
    关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
    / R" r  W9 ^) F& R$ A, Y不知道你有没有兴趣一起开发?我想做成这样的
      ^6 g. H; B9 H1 C1 d+ d; A5 X0 ghttp://www.hi-pda.com/forum/viewthread.php?tid=1210672
    + D! g: y4 R0 O2 s" J6 m3 ^, |" ^4 o3 h4 p( u

    $ x+ ~4 t6 T& O有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
    . U+ r! b0 U, {7 S

    1. 1 \7 w) B! P  v& s
    2. (function _my_code(window) {
      ' n% x& d- b" U  [; }2 f
    3.    function u(c, n) {..}
      & Z6 g' |9 m4 V7 ~* h
    4.    ..  
      0 b( w; I. S  N  P* W
    5.    function w() {..}& E. v1 Y5 K! _; [  C$ b
    6.    var F = 0;# |& H% ~# d' k" s2 ~! l

    7. ! T# [- f9 ^% t, E; L7 X
    8.    function i() {
      0 }/ h/ |: {2 o
    9.      if (!F) {
      6 V' i9 b6 \; n
    10.        F = 1;
      7 ^3 t; ~+ `! \2 s9 R" @
    11.        w();
      2 h( `) f# l. I8 _7 t6 K- G( K
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
      2 f5 S) T3 f- ]5 B( J  y) Q  x
    13.      }
      . ^+ z9 ?3 a: o1 W9 L
    14.    }
      8 j+ S+ L3 q. q8 \
    15.    if (window.addEventListener) window.addEventListener("load", i, false);
      * k! M# z0 G; N) y2 R5 G
    16.    else window.attachEvent("onload", i);
      - P. r! i0 ?  `3 l9 B+ w: K
    17.    
      * z8 {% @$ T, y
    18. }) (this);  /* In global scope, "this" is the window object. */. W8 R! Y, N3 G/ H! G9 C5 Y
    复制代码
    ' f. |& u' B: M* e) Z( `) T

    + U- d) x! _8 `  |! o/ @具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
    7 q! {$ Z, {% r; e# ]. t( Q8 F+ `, j: \( Q
    另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑
    $ B  a- k$ X# _( ?, j# m' X0 l6 b+ d- _% r8 a3 n) _
    , T* f' v7 R( n' T' L9 f- {  p
    0 n' W2 g+ s! Y
    2015年8月5日 11:17:33  V7 n1 t* [: `) P$ P( h
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。4 x* v9 J# x. U7 g) a
    <del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>9 d7 L2 R5 i# W# f7 i
    7 ?# N- e6 L3 h* H$ _

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:12. ]3 i, E) q  @7 t, Q6 R: U
    想法相当赞啊,不过刚试了,貌似还查不了词噢。

    - Y: K; n9 K2 [4 Y
    2 X+ {  {2 a2 ?/ L0 H# ^/ C! y可以查字典。! M: ?7 Q* N+ \! t% b8 D

    + ]( s5 f- J" U( q9 s* b1 j: X. F1. 需要先选择本地字典文件。8 {$ _) s7 p, g
    2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。6 f- d" u! M1 x# D' b) w
    3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑 & L1 ^1 Y1 \; U4 u" F
    Oeasy 发表于 2015-8-5 11:12/ Y  Z% H5 S/ l' n! ]% J- L
    2015年8月5日 11:17:332 Y7 R* k6 H( p
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...
    0 X- s7 j6 A2 n8 b( K

    2 q/ h! H2 w! J; I6 y* D( I出于安全原因,浏览器是不能自动加载文件的。不过插件可以。6 }, N2 {7 x9 g1 U2 U
    $ R7 H" g) X5 H
    关于排版,正在考虑允许同时选择CSS文件。
    3 [' X; n7 Z, i) b6 g. d& ]$ I; a- X1 n& h5 |, h
    IE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 2269 天

    [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>" u( W( m5 O) W6 a4 C$ F& _0 S
    内跳还是有问题。。。
    3 A; }0 o; R# k3 X8 C: u% o& L没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑
    & q8 K: [$ J5 }$ o3 a, \4 x
    peterdocter 发表于 2015-8-5 11:47
    # w, I' ?+ f7 o9 i7 n8 ]9 }dognoun | noun | verb | verb" }+ w6 g6 @" z2 ?% X
    内跳还是有问题。。。  ]. |$ ?2 `0 s6 W& G
    没有再分析或直接替换成#C_hkz4
    4 n6 f  \7 n! }1 \3 C
    4 g% {+ v# o0 V8 ?. a
    谢谢意见。
    ' P- A- m# {+ f* L* I; W/ D3 t# ^' j. x, V7 M/ ^
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    ( m  H5 C: C- ?4 s5 y5 \( y: A1 y& l0 M' T
    我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。
    ) E- W! }. T4 H% v5 k$ R1 ^我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 2269 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:13
    $ t+ M8 b$ `3 Y+ S2 ~; t6 o/ w) v谢谢意见。
    6 I; R5 |% h/ S8 o, B6 q
    / @4 D8 u5 v: S+ {2 x* y$ Q7 C! Y含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    : N5 D( O+ |" E, P6 d$ t
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:51
    $ e  C/ y' h8 E6 f# L  ^) P5 phttps://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    ' Z. ]0 f/ C" f! }0 g( y! L) O您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:03
    # [% a& K3 ]7 P( \$ l, L8 O1 k; p可能此词典作者还没有公开过吧。。。7 o* A% W: _! U$ P# \

    ! O! a5 M6 t. c6 l% W& i- N5 o" Adog
    # k; \0 j  d! k0 ?/ n: _

    * c( w  G3 ^+ s' y谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。7 _9 i* z, t, A5 t. m& F2 x

    9 Z# e$ u3 j) i) P' E: y您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

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

    " U: I: j) J7 K+ e& l' S
    ! b4 B1 Y( D: J感谢楼主辛苦工作。5 O" n5 a5 R4 I- F/ ~
    反馈一个。! b; W8 r0 ~. T. X; S" E
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。( ^7 ]! P# M; c5 ~* x  S( }) L/ c
    如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。
    ( F- p. {1 s# N
    6 w1 k) k3 V8 d3 Z; u( I# o* N% ]* X( m! G' i7 K' ?4 j

    8 I/ \  n: k& @: d, B0 q! Y

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑 ( K. b; Q; D0 M4 d( `
    Oeasy 发表于 2015-8-6 08:09# w' u# k# r: W6 |  m2 y* B7 ~! V
    感谢楼主辛苦工作。
    8 T$ K7 [* C# w3 [3 E: ?1 V: b反馈一个。
    0 C0 o6 K8 b7 s查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...
    + U3 o& N# v, |( X

    0 H% f9 w  s( m3 j" x这只是个概念验证/功能演示版,离完工还远着呢。; N7 s4 R* Q2 ^3 i
    现在专注修改核心,界面等有空慢慢改吧,
    2 Y9 u+ D/ C- e! S真希望有UI/UX经验的同道加入合作。
    + l$ {+ }+ P! p& U! W6 W2 z. ^& s  Z' C2 c
    具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:344 M) {4 F" |6 W( M, @
    语音方面,建议支持mp3格式的mdd文件。
    ( [4 g7 _3 Y( z
    已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。
      B& T, W, @0 l9 c3 |' Y7 a6 b# z2 Q' C0 W! i  c) a
    不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 2269 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41
    , w, F2 t( k5 [: [/ m; o谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。/ v7 C, r) Y2 k3 n! g
    9 G* H2 U! j7 H) r
    您可以在顶楼提到的MDict on ...
    . r4 \' T5 Z0 S5 n
    不错!不过还有一个bug
    4 b. u- U6 L7 P, ^& `( e# @& L<a href="entry://dogged" class="C_REF">dogged</a></
    7 d5 F& Y9 i7 m3 u3 j$ q( t/ l! v没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑 1 v; p2 c/ @3 V3 q
    peterdocter 发表于 2015-8-7 13:033 i8 j8 k# g# `" e  D4 S( X! E
    不错!不过还有一个bug1 y: Q" h& x4 x* `1 x, V* N
    dogged
    5 D$ v# n( ~/ {( n; M

    , @; ?. T* ^! t* ^& ^' V, u7 q这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。" U" M- `. K. E0 ]; ?. t! e
    # {5 Z. P4 \5 W3 l. y4 M. G
    当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    + O! _+ D9 _/ D0 G  P
    8 g0 j/ V1 x; I6 ]! V* J不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。% y6 d  A  v; D' N0 \; F

    . m( n5 a9 p+ @9 p已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 2269 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:112 z' T) e" t$ _, L( C$ Z6 f
    这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。
    * q# I0 K) x2 a9 R; X+ D& r8 d& F9 e, x1 v
    当点击形如 entry:// 非页内跳转 ...
    . c& b/ D; `2 w0 d0 h
    再给你demo调试,而且可以连跳了
    , Q, C, y( c$ t

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:18
    : k% p5 d# m! ]; C再给你demo调试,而且可以连跳了
    " \9 X) J( Q3 S2 J8 N! V
    我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。. X9 m. H* X5 m- K. v$ B: ]/ `* W

    6 G# H) a# d0 B$ M1 y% Z# y: b另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?
    # a' r1 X! {+ U1 Z% ~! e! ]  \& E8 H4 u
    dogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。
    , l) W% Q$ I7 j- y  y
    - b/ Q+ ^- m% X回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑 + Q" S8 K- M. H
    # [/ m2 F. V5 E- U
    支持!* ?4 S* k+ s0 V: [( Z% F
    原來樓主就是因為Chrome插件而開發的
    - d. w% z0 i3 L  `5 b2 Hhttps://github.com/fengdh/ChaZD
    ! D  s. O% `; j% [2 x, z+ J$ T2 P2 M' m$ c
    今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:51
    8 \5 |/ {3 p# P0 W8 P词典里面有javascript脚本的话,似乎解析不出来
    ; j+ n, U1 F8 ^5 f( j, @0 t6 h
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:27" Y' I9 k% x1 O# k
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。
    + u" y. ^& S2 K* o( |% W
    https://www.pdawiki.com/forum/fo ... &extra=page%3D1/ t2 ]8 L" T6 s: z; t
    里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-5-3 02:06 , Processed in 0.026379 second(s), 26 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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