掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5474|回复: 35

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

[复制链接]

该用户从未签到

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

+ i' R5 o/ I8 S7 M2 {& Z3 g

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

该用户从未签到

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

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:04" h  e$ i$ i5 f& d$ v% C
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...
    ! E$ C7 t, V3 R# N* d

    " e2 b. A2 r7 {, n可能此词典作者还没有公开过吧。。。* v+ H; w# ?8 j( G! G' {" ]& x7 R
    : N1 E; l# d" D: w
    dog
    6 i) e- B- c5 E4 y( Q4 }6 H+ n" o<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>
    2 P- u5 ~/ B& ~( o/ g( }4 ~<hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />* X1 R: n' 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>9 z, X. ?- r& ^2 v# W6 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>2 ~2 w* b' m1 X8 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>
    ( F; S+ {& P+ p& ?. `5 c4 m) |; b; ?<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>& J% C3 o7 W- w
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    ( F+ |$ y* }* T6 t<span class=C_BODY><span class="sense-block">
    $ q* p1 R, }& _/ b6 ?6 J<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 Q$ c9 @; `# z4 \% r<span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>
    5 w# x7 E, P! u<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 U: y% M6 q  a6 z, g<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>8 z$ K' t& z8 p! B- c" B4 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>
    , x9 z  w( \8 I* z/ N<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>
      {; c5 X6 m: _+ I" T<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>
    / u0 p$ |+ O. L  y. w  _<hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />
    : V7 \0 ]; ]5 V; w- p3 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">PERSON</span C_GW><span class=CD_CH>人</span CD_CH>
    $ e: `$ o9 i( S, |9 P5 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>
    " X2 Y) j* _% I. a<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>$ n  j$ h/ b* v4 D3 q; e; r' n
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    , q8 V) t6 a- z% O<span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>* D' l7 k2 ~3 i; J" A, w! }
    <span class=C_BODY><span class="sense-block">
    ! [. [& ~7 n! j. p<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">6 I9 V. R8 O5 t$ V* n
    <span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>
    5 }( v' H' _5 p1 a# L2 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>3 g" L+ L; {7 j: M4 H/ h* y
    <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">
    ) R  q* Q# F" P( y, H<span class=C_DCH>丑女</span C_DCH>6 {- m2 l7 c, {& B+ f/ i, a& G6 K
    <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>
    3 Y0 N& U9 Y) w8 S- G( _) g! @# j<hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />
    5 U. O8 f( R- p% {8 T) q9 [/ H<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>2 n9 p5 ]) s/ q/ ^9 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>$ T  o3 N6 |+ e0 U4 G2 y
    <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>
    ; h8 c4 S3 W" E" D+ j* v' ?$ q<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>7 o% D7 W0 R: t
    <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>
    - X0 ?+ Q3 [* |: }<span class=C_BODY> <span class="sense-block">
    9 q7 Z9 i3 }0 ~: r4 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 follow someone closely and continuously</span></span><span class="def-body">0 E$ E1 d$ ^' \* r% C4 d0 ^3 b$ k3 K
    <span class=C_DCH>跟随;跟踪</span C_DCH>
    " m  {& ?; a. _! V; f' L4 ^: a& 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>% c, C6 p- ]8 `; [* w% c
    <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>
    7 ?( i# D( [7 Z8 ^<hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />
    " Y! J& i( S2 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">PROBLEM</span C_GW><span class=CD_CH>问题</span CD_CH>
    ' \! B! Y4 ]# ?' D& ~4 d; 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>( y2 `$ |0 x& M% y- P0 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>0 O8 `8 R3 I2 R9 J" F' i- p! X
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    % s2 d; {: U* D- C; D- d<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>
    & N9 P4 m8 t/ H: E<span class=C_BODY> <span class="sense-block">
    + p& W: P; c' B# v<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">! X( K0 _0 a) W; d
    <span class=C_DCH>困扰,阻碍</span C_DCH>
    " T) D" v/ @; M7 R<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>
    5 E+ ]8 _; D# _+ i/ A5 z- `0 Q<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>
    5 U9 R. ^8 S4 }, h1 }3 v1 e6 s</>
    " n! F. s% _3 K& ]& N. m* k( H给你部分demo内容。。。; F. b' N+ H1 F' i- F. Q

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑 : \% z. P# D2 C9 o- [
    bt4baidu 发表于 2015-9-3 15:369 o. M* F. ^; Y1 z4 c  K; J
    https://www.pdawiki.com/forum/fo ... &extra=page%3D1
    2 U0 K0 ?/ @7 Y$ m里面的动态功能都是 ...

    7 X( F' U/ M2 w( s1 t( G9 C, H+ [
    + s6 _0 ?$ r! r  ^) O已经修改了online demo,加入了对内嵌JavaScript的支持。* {6 x- B- _; B: A5 g7 \
    9 U1 w) n$ Z4 u
    关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
    , C/ j. t" ^* U7 {5 _/ Q不知道你有没有兴趣一起开发?我想做成这样的6 C& ^# \8 B0 d
    http://www.hi-pda.com/forum/viewthread.php?tid=1210672
    " {2 B4 R) B. ]
      }  S5 `1 D5 w$ T- k$ j
    " T4 I6 I9 Q. r; H3 o. d# Y有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:# g4 e  E8 B0 m1 |
    1. 3 \, p+ s, {, s. Z' u  n# o6 u
    2. (function _my_code(window) {
      4 B, y) R7 b8 f+ b2 l3 B
    3.    function u(c, n) {..}. f! R7 k( x$ j9 T
    4.    ..  
      : c. q8 E5 [6 C$ {4 H1 Q: i. `, w
    5.    function w() {..}
      ) A# l3 Y8 P7 [: Y
    6.    var F = 0;
      6 G: {( O$ g7 h0 m! b; [

    7. ) m8 o* Y2 E1 N8 M2 _
    8.    function i() {
      3 m& q1 t2 D) d: m5 M/ W
    9.      if (!F) {4 m# J6 W9 T8 |6 ^% v
    10.        F = 1;9 S* e9 G) t# F/ x
    11.        w();
      6 K3 q. Z! E3 E0 F* B
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
      / i; W( o' T9 g" C
    13.      }4 o) b; g1 U$ U, ?
    14.    }/ J: E3 m1 D* a& e6 }2 h
    15.    if (window.addEventListener) window.addEventListener("load", i, false);/ u, n; I/ u% u  r' L+ E; ]
    16.    else window.attachEvent("onload", i);
      ( h' W1 K& I7 o5 y) U" U
    17.    
      # I$ P! w6 V. G& b! |& ]7 ?
    18. }) (this);  /* In global scope, "this" is the window object. */
      4 {! y, A8 f8 {3 I2 ~% K
    复制代码
    ( f( J- v; e0 m% q- \

    - l$ r6 n& z1 D具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
    5 P" S  H2 A; v- j( [; E5 \
    2 R: v8 s( h4 f( W. v1 ^3 k另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑
    1 z$ q. D4 V; Z. [- H5 l( m8 V. R+ i$ `7 H* l3 `
    ; d$ Z% a2 c' H% m' s& w0 x2 g5 F. N
    3 M5 a+ z0 C4 R3 g
    2015年8月5日 11:17:33
    1 i) A6 P0 p- h+ a! n1 k换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。" n/ n3 I6 g. a4 q; v$ L
    <del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>: v% S" n8 f# u1 F4 x* c
    8 @  s; ]" y$ s: p- j# N  S

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:120 b+ T7 o* Q$ A3 D  Q3 R7 g! ?
    想法相当赞啊,不过刚试了,貌似还查不了词噢。
      w1 J- e1 [! d8 q" `7 S

    ( X; f( |- b6 T可以查字典。3 p0 z( j& v6 u* h- q
    : ^$ O1 g+ X, ]  ?2 M- x
    1. 需要先选择本地字典文件。; I- U  g0 W/ i) R2 b
    2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。) `7 F4 R7 w) v
    3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑
    , C" g9 ?. _) _. V8 U
    Oeasy 发表于 2015-8-5 11:12% P& |( v4 y, ?; R% t7 Z4 [) O
    2015年8月5日 11:17:33
    - d1 L5 c( X' ?换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...
    ( ]: Z* g: @8 F$ p+ O

    1 L. c! E8 `( w8 a4 c- W0 z0 q" S6 e出于安全原因,浏览器是不能自动加载文件的。不过插件可以。
    5 t# \+ N" {$ v8 F& R  c) k' [( g% F6 V4 q7 ^
    关于排版,正在考虑允许同时选择CSS文件。! x- G7 |- V* m* I2 W. I4 d

    * S2 X1 w) J% b6 W% |4 nIE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 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>
    : Z9 C, l2 q. |# |" X内跳还是有问题。。。$ D* B  R: `; T
    没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑
    : r) I2 k+ S; Y; e
    peterdocter 发表于 2015-8-5 11:47
    & ]' _( _5 e  V4 Bdognoun | noun | verb | verb
    ; C1 O6 N, L# T7 L$ Q内跳还是有问题。。。, f& S) ]/ S( T1 k, j- B
    没有再分析或直接替换成#C_hkz4

    % ^& i$ Y" ~' S$ ?
    ; X$ E4 G- Z" x& s3 w1 k/ l9 c谢谢意见。
    : a3 w4 n0 P2 U4 t1 A0 |# g0 r; i8 x) z
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    2 U: K# b, j1 w0 S  t' n' G3 x9 n. E# L  y& x" G: E
    我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。* y9 E' o) \) k1 P3 ]
    我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1961 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:13
    ) b3 n. |6 ]+ y谢谢意见。% }, @6 \' `- T, u/ J

    + p) [: }/ ~. N含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
      g' Y" S% I0 d" x
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:51& @3 j" a6 l! q2 v% t% z  x
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117
    $ W0 L( v. ?) [3 X
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:03( [3 j$ H3 g3 H1 o$ E4 v
    可能此词典作者还没有公开过吧。。。9 T. |9 t2 I' Y  q- [9 D
    ( \% Y) w8 y0 C3 r1 x
    dog
    : ^& x0 y6 H; U9 z

      ?& s( n  y4 i谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。* A4 Y: [0 y. y' J$ v

    ! |# k( f) P: K2 U& L9 g* {1 x& x您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

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

    $ ~; i! R# d2 D9 U# x9 H' g
    ; j, t+ O8 `) N感谢楼主辛苦工作。: a- x4 W, X! n. R& \- ]# H
    反馈一个。
    3 Z$ |1 u0 p+ O9 E, H/ M( g2 A查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。
    , T$ A4 z' [/ c& G- y+ P如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。
    - g- t3 V0 d, r4 X: L( c, v& }- ]0 i1 \) b
    , {8 j6 _7 a, m

    3 _' U9 P2 w) l

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑 , k2 h+ Z9 V6 G0 D# O+ }0 `. U! ]
    Oeasy 发表于 2015-8-6 08:09
    - S' s! E9 {4 t+ |感谢楼主辛苦工作。
    3 K, K/ X$ e! C& [" f+ c反馈一个。
    . y; |6 S' _( v7 W2 m/ J$ @& [查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...
    1 p2 N, U3 \  }

    ( q- ~& j  D, ?( K0 R- o# O! [这只是个概念验证/功能演示版,离完工还远着呢。( V8 o+ |# S0 b. ?" b0 |5 F
    现在专注修改核心,界面等有空慢慢改吧,. U1 X' E% D, i4 n7 h! `8 `" I( N
    真希望有UI/UX经验的同道加入合作。
    1 W+ V5 F" K& D- o* X5 ], p7 G3 |! E! V
    具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:34* L0 ^9 r- |# R: j; y8 H& \$ b. r+ j
    语音方面,建议支持mp3格式的mdd文件。
    ; x! V* `9 \/ ~# u& }! V
    已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。5 E- Z1 ?" y4 X" H& p% u
    5 B3 Z6 S9 S+ C+ B  K, i) h
    不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1961 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41) ^/ _: r& C7 ~
    谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。9 m* O; e$ v: x) r7 f
    * H3 E, @: b9 i4 y  l; e, y# F. q1 N- o
    您可以在顶楼提到的MDict on ...
    & ~( a2 A8 g3 n
    不错!不过还有一个bug
    ; P) h9 B: f" n1 Z1 ]& d<a href="entry://dogged" class="C_REF">dogged</a></. H% J9 U& {* }0 |* j
    没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑
    0 r: l- x: }: {7 j! c
    peterdocter 发表于 2015-8-7 13:03& G! D$ [) j& \* p- e4 x' d
    不错!不过还有一个bug5 M4 F9 J5 P. c6 x& }+ Z0 a- O4 d
    dogged

    4 }( p& x7 R2 U4 q) ?1 ?2 B; D' f  K" _6 |* j
    这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。( V" E! H% B4 d4 Y2 Q- H: d% D
    * \' E& n& n1 {, \- _
    当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    ' n) m1 a( S3 V) `
    6 Z/ h. U/ E2 C& J! \不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。( R5 H6 R0 L2 K. T6 a; c0 b' l' {
    ; N2 W: C9 K+ p- a- S- A( u
    已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1961 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:11
    # i6 x* O) Q1 X! B* _. A' B这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。
    ! i) w" E6 [& H* A$ p3 j  V
    ; M1 ~9 M8 [7 u% b3 O8 Z6 `当点击形如 entry:// 非页内跳转 ...

    4 R; p% H, U/ q再给你demo调试,而且可以连跳了 $ \: \2 P0 u9 n

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:18
    9 Y/ {+ y; }  [+ l+ @# Q1 I再给你demo调试,而且可以连跳了

    ! |' k' }6 B& b3 P0 n( s我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。
    / \, R' P; R& J2 h$ t3 }' u3 Q4 U& e" J( D3 U( A9 a; ~% ]! i/ C
    另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?- F2 _0 G) F+ |7 Z- f" {; @! N, j

    ) @9 [0 Y  U2 Q) h: `) S4 H1 B* gdogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。
    8 m! [, ~( ~7 A2 a: ~+ t7 c4 `: Q4 c2 Y
    回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑
    6 K+ g9 Z: }. o5 j9 r
    0 E0 h/ X4 T$ v$ `+ U支持!0 F5 x( \' `9 Y, I  g
    原來樓主就是因為Chrome插件而開發的
    0 l( B5 e; X7 y. ^% [/ @https://github.com/fengdh/ChaZD# a5 L+ Z* X& v

    7 G3 `: M% ^, U) E" b* E3 @5 [今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:51$ `6 s! ^- D/ h0 J# A1 n
    词典里面有javascript脚本的话,似乎解析不出来

      ?5 B9 ^$ \5 T1 T2 A原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:270 `4 @7 V6 H. }+ d3 S# C
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    0 V4 i5 G1 a- H- C" X7 z& o3 Mhttps://www.pdawiki.com/forum/fo ... &extra=page%3D1: [, b( r) y* i8 L
    里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-6-11 01:07 , Processed in 0.082577 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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