掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5209|回复: 35

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

[复制链接]

该用户从未签到

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

. U0 V. W8 E0 y% Y6 a! N- A+ x1 g: d. B

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

该用户从未签到

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

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:048 w* \% r5 ~* h2 O. S- Q9 A( Z5 E' s( P
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...
    / a+ @& ]4 D& G
    , t; O% Z% p' ?4 t3 y8 \. c
    可能此词典作者还没有公开过吧。。。3 X& z2 A2 A! _5 I
    9 _6 z. k9 v; k# B
    dog! q! X9 J& `7 t" \
    <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 I& |& s  q7 F  d: p) I0 i# R7 @<hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />
    ! D- j/ b/ f- ~: X5 d<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>
    3 ~/ v- U) G9 a# w  @9 u<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>/ k) C+ H, m# P0 n. A4 Q5 @0 W
    <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>  E6 T5 S2 P- F, x
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>5 @7 O( G+ t+ {
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>& L  U2 p# d% m( S
    <span class=C_BODY><span class="sense-block">
    0 k' G/ z7 B- 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">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">
    6 X& P. X8 ]: K- H# n<span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>: U& J! O5 N2 j9 i# T8 k
    <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>  X4 [# I2 M4 j9 p
    <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>
    : z) `" J3 {, P8 |<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>
    , G  `6 j1 }) b) P1 k<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>
    ! ]& g9 }9 ?- m" G<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>
    + V7 l4 ~* h4 S8 X0 ]: N6 @% V<hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />8 n- S% U3 A0 b# `. B
    <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>
    ; _4 i# c8 C* b* s; A  a<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>
    3 l+ x8 j; I8 s' C2 X/ g<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>
    ) b; P/ ^# R' A$ Y4 u" b! r: ^<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>' S: B$ x. l8 F
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    & ]$ W. U" ^+ m+ T) }7 t<span class=C_BODY><span class="sense-block">
    7 B: ]( i* c8 I) Z* w8 H- W<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">5 N7 H: E8 u3 R
    <span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>$ }, P2 J; F* 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>+ X) q% q' C, Y8 T  a
    <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">2 R/ |" Z  b7 A5 Q' L
    <span class=C_DCH>丑女</span C_DCH>
    5 l: R/ X4 J7 G! n- i! Q, @<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>- l# d0 T. J6 _  t
    <hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />+ }2 Z0 _- ]' [3 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>
    : R$ \6 F2 V+ \: n* a9 U<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>" e1 O3 X! r% h7 c( l5 C; V% O' ?+ 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>
    1 R, D7 U- H( M<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    $ U, U: G8 A# M9 x0 Y7 k& h<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>9 ]6 N2 Y: N1 i$ \; _) T5 R
    <span class=C_BODY> <span class="sense-block">
    3 M  F# ^5 \3 s' B! q5 i1 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">
    + j! h3 c7 S+ v5 O0 s<span class=C_DCH>跟随;跟踪</span C_DCH>
    4 o6 r2 u& t/ {$ 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>+ ^$ ~" M1 l# U
    <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>1 u; J5 |# k! D  ~2 k/ X
    <hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />
    " q. T! I/ J. Q( ?' |<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 j- }+ R  W0 [! J; K. i<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>
    " H) P; ]2 ~% P* [6 \7 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>
    7 h: c3 P9 K! @<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    ( r# r( {4 G6 \# R" @( \7 B<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>
    & }; F" x5 @9 c7 U8 p4 j# U$ |9 h<span class=C_BODY> <span class="sense-block">& V; b" S, K7 I' g4 Y6 l" 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">' x  t# e; k4 }8 x- [& o
    <span class=C_DCH>困扰,阻碍</span C_DCH>4 h# m, e) l( J! 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>( q$ e- ]' I4 U9 x9 j
    <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, s6 f% g( N4 k& g  ~% m
    </>! K* u, c) M7 {1 Q" ?# x! E
    给你部分demo内容。。。: W6 t1 p- |7 C  C9 I

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑 6 ]- G7 F% c$ v1 O( I
    bt4baidu 发表于 2015-9-3 15:36  c. V5 x( }0 ^0 I
    https://www.pdawiki.com/forum/fo ... &extra=page%3D1
    6 v  z- }4 Z. M5 J& p% |7 o里面的动态功能都是 ...

    3 l, w5 E" M% H* f/ f2 t* S! s$ s4 z8 A+ }
    已经修改了online demo,加入了对内嵌JavaScript的支持。
    " o3 e- L' h" ?; F/ R+ s+ p: J1 e- u* V
    关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。* g3 W# f1 a/ Q) E$ y% P
    不知道你有没有兴趣一起开发?我想做成这样的
    " }; q8 O+ C# Z( Rhttp://www.hi-pda.com/forum/viewthread.php?tid=1210672
    ) E( W5 E) o- H: m! `; j3 ~2 R  g' C3 i0 S, U( H- w" d

    , _8 }% S& x, `& p& L2 t7 l有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:! q2 f( m: d$ V7 V/ i: c7 |/ h

    1. * j$ B! k! v) ~: \
    2. (function _my_code(window) {
      8 O+ }& z) k/ w6 A" E& C, C
    3.    function u(c, n) {..}
      7 ]* w& {- j6 D) Y' K3 ~2 k/ h
    4.    ..  
      8 R. J2 c4 M  [: F' @6 u+ b
    5.    function w() {..}  l# ~! Z* C2 m. C& j$ }4 h
    6.    var F = 0;
      , M; ^7 o' x' N8 g3 q

    7. & Q) P& e. G; z" `9 h# w
    8.    function i() {
      , s2 {) x  |- X' m! a) n
    9.      if (!F) {
      ( B8 {4 R1 e+ \7 v4 a; o3 f
    10.        F = 1;4 Y# [9 W2 O0 G3 j
    11.        w();: I% a' U7 ~' ]' }
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
      $ j- M2 K$ U, f# [  v
    13.      }
      + ]& r4 {, _" A; L, Y  i& w4 m  n
    14.    }
      " F0 p+ h; N2 B0 C! t9 A* A
    15.    if (window.addEventListener) window.addEventListener("load", i, false);
      . x) g# B$ c2 }& ~0 l4 [* o: N
    16.    else window.attachEvent("onload", i);7 {" G6 ]% C2 w" X  q6 A
    17.     / ]% X" I0 |1 L
    18. }) (this);  /* In global scope, "this" is the window object. */- [6 J5 g- X$ v# N% a  y
    复制代码
    ) m7 Y6 e$ l3 Y' L' r
    # \- ?, Q9 A6 X; t$ P& l; ^' A
    具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
    0 u$ ?6 e+ i7 _3 N% G% R% ^* Q7 O+ M( ?5 Q- r
    另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑
    , F" L, i: m0 @1 ]. T8 a' m
    - I8 S% U& |  l) e5 b " I8 j# A/ ?8 @

    / _6 A7 f, p" l5 g+ W- \# h0 b2015年8月5日 11:17:336 r0 ^+ q* D% @
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。. f  g3 Q% ^. v$ D' U
    <del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>- U1 e1 P, f( {
    # q# r( i) B, ]1 }: W% g1 {

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:12
    ' Z% O6 V# ~; }, ]想法相当赞啊,不过刚试了,貌似还查不了词噢。
    . T  P. C& y+ E0 S& v; T6 r4 h
    0 h5 _$ f+ u1 b# h. d" F: D
    可以查字典。& o8 y$ U- R5 w' z9 m
    - [3 o7 J: e7 F
    1. 需要先选择本地字典文件。
    8 J3 R: L4 S  D+ A% M9 l2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。
    5 u+ h0 i# V1 R+ a3 T5 E) l5 H  Z3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑 3 E( X. U0 E" e2 ^' f. Z) l
    Oeasy 发表于 2015-8-5 11:127 Q* W/ H% b" N/ _) e
    2015年8月5日 11:17:33* y: s1 p8 ]2 w/ L
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...
    % f+ d/ n. K# q; _+ k6 D/ b
    8 O( W; W* Q5 y( v
    出于安全原因,浏览器是不能自动加载文件的。不过插件可以。; s- x: }8 q" H
    , X0 o) w0 ^$ f: T( f: I" N. C
    关于排版,正在考虑允许同时选择CSS文件。( k* ~, Z2 \. m/ x1 ]9 n

    & l$ i% I% Z2 [. {* W  dIE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1909 天

    [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>5 i, P9 U5 V; e: b1 O; Q2 L: k. [
    内跳还是有问题。。。" ^* }/ t! `! }  [
    没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑
    7 }6 X; t! G0 _& Z
    peterdocter 发表于 2015-8-5 11:47
    " o2 N+ |9 C8 B6 w+ i! Tdognoun | noun | verb | verb
    9 ?, m6 p! F- d, y4 z内跳还是有问题。。。
    $ Y2 h8 E$ A3 A没有再分析或直接替换成#C_hkz4

    & A& C9 s) s) O! R( l/ L9 L& {" `4 `! I" k4 a6 t
    谢谢意见。
    4 P( H: n6 [; F) a( \- s; H5 E0 `- c- i7 i0 L0 f/ b
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。7 B5 R+ V' G5 O+ R

    ) V  j% f/ Z* D# J# [" u) }我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。8 z& s& o4 M+ H- l
    我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1909 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:13
    * ]! }, }! \8 `' k谢谢意见。# a  I0 ^- y9 i8 z
    5 l" v- U! W: S( y0 A: A
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    * p2 ]/ H0 Q, _1 p
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:51: R. i. o9 l8 f! J& d  r% x
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    : L; U6 F3 M" }" a您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:03. H% Q5 V* ?' ]( }1 D
    可能此词典作者还没有公开过吧。。。
    ; H6 T1 F  I* M" H2 n3 w
    4 I2 W0 {- C: M: v6 s) V+ H' M) pdog
    # u/ p( g" Q3 I$ u7 T

    # I, Q: B1 f/ ]1 @) i0 T谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。+ g, ~% l$ q( ^/ K8 l

    0 S/ [- }! s( x$ t您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

    发表于 2015-8-6 08:09:24 | 显示全部楼层
    # P. L9 V$ Q$ D: o" z! M: e
    1 T6 s$ D0 Z5 r" @+ o$ h
    感谢楼主辛苦工作。
    6 t8 P' P0 F* R- `# l8 n+ ~& f) T: x反馈一个。
    2 _8 I7 ^  {' a  C6 e查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。" T; g) N9 y/ p6 E
    如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。1 E/ S; T' g6 m% d

    * w0 j. C% M/ ^3 F2 T7 X9 S. i/ |

    8 p" q. x8 w$ q5 r

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑 ( @% E  @/ ?" O
    Oeasy 发表于 2015-8-6 08:09
    ) \' _- M. ^& f; p) ]感谢楼主辛苦工作。
    / @* v3 ~% M  ^$ M: c: O$ `反馈一个。
    " e# N* _" E' R0 X6 q( a. D3 F查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...

    $ |  h0 d% j5 c" w4 S1 K( N2 d8 x! H/ r+ u+ Y+ ^
    这只是个概念验证/功能演示版,离完工还远着呢。+ B2 P, [4 b. [; x+ f+ @% b
    现在专注修改核心,界面等有空慢慢改吧,% P$ X! F! d. @6 D5 D) k) r9 \
    真希望有UI/UX经验的同道加入合作。
    $ V$ _; \' u7 n7 Z- O9 o8 f: a9 p; o( F) ~
    具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:34# z$ x0 e) `, Z1 L$ i1 c" O
    语音方面,建议支持mp3格式的mdd文件。
    ' l! u' A* [) U/ i! H, x1 `7 ^
    已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。
    ! r% g! Z; J/ v# y& f% g: P( L' y; e6 Z; E- s, x) ?: J
    不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1909 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41
    6 j% }$ @% R- W7 Z谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。6 N& a, n' X( h; F  o

    % ?; @. b3 H: v% j. q4 j3 H您可以在顶楼提到的MDict on ...
    . _% }8 Q4 P. S% L3 c$ A
    不错!不过还有一个bug7 i+ }* s2 g3 ~4 R. D
    <a href="entry://dogged" class="C_REF">dogged</a></" A' r4 F3 t9 r1 D  Z% K1 q
    没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑 & h1 S6 x7 S! c& k
    peterdocter 发表于 2015-8-7 13:03
    7 \1 o9 z* N6 I/ Q不错!不过还有一个bug' |' T! q: Q2 W  b# x5 V" u! w
    dogged
      f7 g3 N# |) g5 }$ B/ |  [# H' u
    ! g' c( f2 Y- {# \- R  ^8 |  R
    这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。
    7 p* Y/ E" Y2 ]
    1 E) H4 I; V8 k当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    - i4 n6 o- A7 M% T) I2 k' G+ ~% C8 p+ Q( P. f5 H3 b
    不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。* o- f1 D- R' u8 K6 v" @' W  S
    4 R) f' V) \  a3 ~. A
    已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 1909 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:11
    + @0 _) C+ B1 E2 U  \# r: I, r这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。
    6 r  V8 s) D) M: W" x' Y) F' C' T* ]$ K+ y1 ~, L% O
    当点击形如 entry:// 非页内跳转 ...

    4 \/ g$ J! E4 L2 g5 ^再给你demo调试,而且可以连跳了
    1 a! P: L& C6 G; w

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:189 ?3 F( X/ X$ `( G
    再给你demo调试,而且可以连跳了

    % ]. ~8 c0 p4 }% n& A我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。
    $ h3 k- o* X: v4 @
    $ B3 j' ?. S: x! A4 _: R5 T9 q另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?
    : Q4 t4 E0 T* k8 ]* L: s3 Y
    & f0 j. i: \9 Ydogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。& g% O: Y7 H. A( Q" Z4 b

    6 W6 Q$ k9 l7 [* m! n4 d6 M) o( `回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑 8 u/ v( M) x9 z. u

    * U6 L4 E& T- K0 X' n+ w9 X支持!. L3 o2 _) n6 Y8 b5 p
    原來樓主就是因為Chrome插件而開發的
    2 {/ M( b  l: v6 P" s" whttps://github.com/fengdh/ChaZD! G9 R5 A# A5 F7 l' g

    5 K1 ]6 w) G( ^" q+ A今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:51
    * F6 O$ T4 I& C8 I4 y词典里面有javascript脚本的话,似乎解析不出来

    % s! x5 `  Z4 X9 L1 W2 l$ U% B  e原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:27
    , J* n7 {7 G" B$ }8 \  e' O原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    * c: h7 C3 d9 b1 n. \: u2 @https://www.pdawiki.com/forum/fo ... &extra=page%3D1/ }. L1 x% d/ L4 Y+ G" }& s3 N
    里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-20 05:09 , Processed in 0.065863 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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