掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 6848|回复: 35

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

[复制链接]

该用户从未签到

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

$ q5 h2 T2 r; I9 X. g* m谢谢。0 l/ z" _$ s$ f3 f7 n" y( C

$ U. [" R# L$ @' ^
; a: {- h1 Q! a" t# P6 C) M
" N  d- W: c! f/ o- Y8 C, m
7 f! T9 n: Z+ ?0 G: a2 V7 w+ p- s% D7 E" L9 N, ^$ b5 w/ e
5 Z8 c3 _) P8 [" @# Q7 @

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

该用户从未签到

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

    [LV.Master]伴坛终老

    发表于 2015-8-5 15:03:55 | 显示全部楼层
    fengdh 发表于 2015-8-5 14:04
    2 Q9 X/ |6 d/ q5 |% e. X您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页 ...
    ! A; a* q! y8 r0 d
    ; o) L8 F3 _% a. n2 g
    可能此词典作者还没有公开过吧。。。
    0 I- b0 _8 [- R8 a
    : w% y; t( v3 k9 T, f0 R( adog
    0 G# I1 `+ `' h) x$ N6 F" u& k<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>
    4 ~0 U. |) I4 k* E/ F7 w  o5 u<hr class=C_HR1><a name="C_hkz1"></a><a href="entry://#C_topz" class=C_NOT>&#160;1&#160;</a><br />
    ) _+ b* c' M. F  ?& z6 z, Z3 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">ANIMAL</span C_GW><span class=CD_CH>动物</span CD_CH>
    . d8 M6 c. A$ @9 g9 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>% q4 J* C$ Y6 G8 \7 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>
    0 s, Y4 A) ~9 h1 k7 v<span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    , w5 i) S7 c1 W5 c: J<span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>
    ; J; R; @/ [5 H8 Q8 A- D<span class=C_BODY><span class="sense-block">; i) W- M7 d: 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">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">' {& d" a0 a4 h2 f
    <span class=C_DCH>(尤指当作宠物或用来打猎、看护东西的)狗,犬</span C_DCH>6 Z- z1 v0 ^8 {
    <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>' z" D" S; o3 L; K3 U8 Z
    <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>
    ) C" F6 T- K% s, k$ A9 N<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>
    " ]4 m& K( p$ t7 g% }0 f<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>
    . [) E) c* z) U$ w8 k- z<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>0 p9 p4 I7 @0 Y
    <hr class=C_HR1><a name="C_hkz2"></a><a href="entry://#C_topz" class=C_NOT>&#160;2&#160;</a><br />
    8 o. l, u# l/ |  S: p% D2 W<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>8 C7 y7 q9 n. o3 ]# P1 F. f
    <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) h/ O; s) m6 e3 A) h
    <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 _* {" J0 p; o; {
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>4 t" Y0 \" i  A0 E; `
    <span class=C_IMGUS>US</span><span class="pron">/<span class=C_IPA>dɑ&#720;ɡ</span>/</span> </span>: j( w* F7 t4 b6 A9 S
    <span class=C_BODY><span class="sense-block">$ B! p7 T% `* ?# d2 K
    <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 ?$ y: K6 ]$ U# H+ Y9 p, }/ m0 z
    <span class=C_DCH>讨厌的家伙,惹人烦的家伙;失信者</span C_DCH>
    7 W# t8 L' x! i<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>
    : G; N. N$ C  n* P<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">
    ) B( W- k+ \# V! |8 D<span class=C_DCH>丑女</span C_DCH>
    : a1 }. f7 V+ ?<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>  p1 x- l, K* V+ ~2 r: _
    <hr class=C_HR1><a name="C_hkz3"></a><a href="entry://#C_topz" class=C_NOT>&#160;3&#160;</a><br />3 ?4 K) O  Z; E5 C  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>
    9 q7 H1 V3 G6 F5 l- ~4 u3 @9 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>" R/ D4 ]2 d2 ?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>: X1 `, D$ j1 R- T' h6 K2 p
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    8 j8 s0 y8 R- q- s<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>
    - I7 ]/ B- o8 u+ j" i. P; k1 h0 f# N% o<span class=C_BODY> <span class="sense-block">
    & c6 J* {: D* G7 L<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">" W9 O2 R$ d  \
    <span class=C_DCH>跟随;跟踪</span C_DCH>  |& O- i; ?8 K5 m9 a
    <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>
    . ^' K# O6 ]# F. t<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>
    2 \1 [, M+ E+ D' i1 C, t  r<hr class=C_HR1><a name="C_hkz4"></a><a href="entry://#C_topz" class=C_NOT>&#160;4&#160;</a><br />  X' M' E( w$ ?" Y- {8 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">PROBLEM</span C_GW><span class=CD_CH>问题</span CD_CH>" [* w% ?8 `$ {2 j& `9 G
    <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 s( X% q& f& Y5 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>+ [8 q( s# ?5 z) @! Q. X
    <span class="pron">/<span class=C_IPA>d&#594;ɡ</span>/</span>
    6 i; h8 G5 C% m0 D( G" p# n; u<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 k, D0 l+ L/ n* k
    <span class=C_BODY> <span class="sense-block">7 i2 `) |( {: f5 R! W* 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">
    3 U* [! G/ k6 B- M+ s" p2 y+ h<span class=C_DCH>困扰,阻碍</span C_DCH>; `" S' y! p0 J+ P! Q4 L
    <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>
    ) P" O- `- Q$ C7 G. J( P: 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>* M+ T6 _7 R, K2 `/ C4 i7 m
    </>
    5 {1 f; A& x/ H9 m4 A给你部分demo内容。。。
    : g7 L+ b$ g% J! P

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-9-4 13:30:21 | 显示全部楼层
    本帖最后由 fengdh 于 2015-9-4 16:32 编辑 : Y' w" D4 q6 S) B: \
    bt4baidu 发表于 2015-9-3 15:368 w. \; j2 h& Y; _+ N  s, w1 O
    https://www.pdawiki.com/forum/fo ... &extra=page%3D1
    7 ]: H: o$ U! [2 a. K: Y: R. D里面的动态功能都是 ...
    5 w" l( a, H3 e) F7 w" c2 ?( R+ F2 [

    7 b4 ^& m; l1 y, p3 h已经修改了online demo,加入了对内嵌JavaScript的支持。0 ^* Q* d# \8 D3 G
    ) G$ T3 i$ H% _' G" Q
    关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。; j" \( C6 f) H% X7 }3 l
    不知道你有没有兴趣一起开发?我想做成这样的# N3 C( c* Q9 F& M
    http://www.hi-pda.com/forum/viewthread.php?tid=1210672( R6 K+ d9 ~- H7 U  W
    + w* A6 G7 X- e( Y2 f/ n' N

    ! U7 v% g# E0 r) {4 P! V+ y* ^有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:- j( f8 K9 D$ b7 N

    1. ; I, f/ T3 `9 q4 F( |, i3 D# s* J* c
    2. (function _my_code(window) {0 m% f8 W7 m: o% U1 o7 B7 I
    3.    function u(c, n) {..}' A* E" \. M; Y& z* r0 o- u
    4.    ..  0 b( Y* T, n( w0 h$ f
    5.    function w() {..}  I# j+ U8 S) @) L; v
    6.    var F = 0;& y  t3 u/ i7 D% ]
    7. 2 g& ^$ e* {8 p' _0 g3 Z: V
    8.    function i() {( i$ C; U* l* Y% M# w
    9.      if (!F) {
      8 A$ C- V- c8 a. t
    10.        F = 1;: f- R: ]# n. h! r1 K8 h5 v4 q
    11.        w();
      4 v9 f) ^( ~9 V/ I
    12.        if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);+ J% @- |; t/ ^. z2 e! Y
    13.      }
      8 `/ k5 s% \" r) M5 {9 G% V4 Y) _8 s
    14.    }
      ' ?) O4 `( c( ^4 V2 w2 ^
    15.    if (window.addEventListener) window.addEventListener("load", i, false);; P/ S1 C; h7 ]+ C; w, K9 m
    16.    else window.attachEvent("onload", i);1 e. m$ M$ l) K8 c
    17.     / X7 X0 |$ K- }2 p: H) {, i! W
    18. }) (this);  /* In global scope, "this" is the window object. */
      & Q/ W) B3 O( M
    复制代码
    7 n* _( z- `% D/ |
    $ ?/ I) Z$ r1 ]+ A% m2 f2 w: |! M
    具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
    + Y1 E4 c4 [- a" S( ?. O$ D% r+ l, ~# ]1 J
    另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。

    该用户从未签到

    发表于 2015-8-5 11:12:55 | 显示全部楼层
    本帖最后由 Oeasy 于 2015-8-5 11:18 编辑
    ) P+ ]2 k; U5 ^* Q* q- q2 c) Q6 X/ F' v# r9 B) `

    % c( e# w) t6 y) O0 N/ n" C8 S
    / L7 M) g! V3 p) M. P* ?" `1 H2 d' E2015年8月5日 11:17:33
    ( }: C3 g: D5 n( T" ^8 E. c/ u换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选上,不然排版都没了,换言之,也就是目前不能自动识别、加载同名mdd文件噢。
    6 _, ]+ F5 P* J( ~5 b! l4 J9 w9 Y<del>想法相当赞啊,不过刚试了,貌似还查不了词噢。</del>* {  r3 M, ^0 Z" [% t/ t
    ' F. G; |( _/ v; v# M- v. i. i

    该用户从未签到

     楼主| 发表于 2015-8-5 11:17:38 | 显示全部楼层
    Oeasy 发表于 2015-8-5 11:12/ E' }+ V8 E2 C# n6 O
    想法相当赞啊,不过刚试了,貌似还查不了词噢。

    * |" F; D, u8 _9 c5 y  k
    " Q$ s8 \$ S9 _3 ~# i* t& W6 h! [可以查字典。
    # q2 f3 ^" {; }( t4 g9 M' }2 g, U% x. {
    1. 需要先选择本地字典文件。5 R5 ?8 q0 C. f0 k
    2. github可能比较慢,多刷两次页面更新,等那个写着paddle的输入框变漂亮了就说明加载成功了。参考截图。
    % N. b2 x2 Z9 b6 V( d3. 写着paddle的输入框,点击一下,按回删键(backspace),就可以输入新词了。

    该用户从未签到

     楼主| 发表于 2015-8-5 11:20:10 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-5 11:21 编辑
    6 Q/ H. ]" ^. \8 O$ i- P4 t
    Oeasy 发表于 2015-8-5 11:12
    6 I, f! p$ o0 l% l+ _0 f( |2015年8月5日 11:17:33, }1 Z3 {7 h5 a0 A$ B
    换了浏览器可以了。如果词库文件含mdd,【选择文件】必须把mdd也选 ...

    # W' p( X% ?) p; H  C5 k  q3 Y$ ]9 @2 \* B2 D1 m
    出于安全原因,浏览器是不能自动加载文件的。不过插件可以。
    9 m7 B0 j% q4 ?9 F& V0 Z3 q3 x5 s# F& _: e0 X' U% E/ f" j
    关于排版,正在考虑允许同时选择CSS文件。
    ! T6 c  T- I$ R8 M. }0 r' E% F! }" }/ s* v) x, m
    IE是个坏孩子,暂时请忽视它。
  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 2264 天

    [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>/ W# z1 X- s$ }: z# m
    内跳还是有问题。。。
    4 @$ E  G5 A& a$ J$ j没有再分析或直接替换成#C_hkz4

    该用户从未签到

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

    本帖最后由 fengdh 于 2015-8-5 12:41 编辑
    ) \9 {# Q( b  s( F1 J" [
    peterdocter 发表于 2015-8-5 11:47
    6 [2 c4 ]0 E1 J; M) @. ?/ j- Z$ C/ sdognoun | noun | verb | verb( ]8 f6 D2 ^' @: v5 C
    内跳还是有问题。。。1 \/ ^1 D7 `6 H2 |7 ~
    没有再分析或直接替换成#C_hkz4

    & t4 i  d1 g+ w2 e
    2 D. z1 y3 l; U8 D+ i- C7 `! h谢谢意见。/ y- }, x$ ^* w! b
    & f+ D4 D8 m( {
    含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。7 x  ^; h. U1 E) H) g$ l) i

    $ R" V1 C* a7 h* g# [  k8 ]我有一个LDOCE5字典有类似跳转,好象是用于不同词性之间的快速切换。我不清楚您所提的情况需要跳转到页内何处?可否说明一下。% K* A# t  E. G& k  M- ~0 I( X
    我猜想这也许不是MDict普遍特性,而是一部分字典的特性,实现方法和策略各有不同,需要一个扩展机制来分别实现?
  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 2264 天

    [LV.Master]伴坛终老

    发表于 2015-8-5 12:51:47 | 显示全部楼层
    fengdh 发表于 2015-8-5 12:13+ q8 x: d  V- N" C" d6 v/ z8 R. ~
    谢谢意见。. ~3 h2 K* ?, ~  Y) Z+ u( U

    , s) G1 Y3 B3 g& l; V含 # 的页内跳转确实还没做好,可否问一下您用的是哪个字典文件我好参考一下。
    5 c) J/ h7 [/ ^' m
    https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117

    该用户从未签到

     楼主| 发表于 2015-8-5 14:04:29 | 显示全部楼层
    peterdocter 发表于 2015-8-5 12:51
    6 D4 W& H! A. ]* |- hhttps://pdawiki.com/forum/forum.php?mod=viewthread&tid=13117
      L( X/ T* X* O1 g! [3 m: `* l
    您回复中提到的《剑桥高阶学习词典英汉双解第3版【CALD 4风格重新排版】》我下载之后并没有发现其中有页内跳转的项目。可否请您再确认一下,最好说明一下页内如何跳转的。

    该用户从未签到

     楼主| 发表于 2015-8-5 15:41:07 | 显示全部楼层
    peterdocter 发表于 2015-8-5 15:035 @1 m3 Y" D$ }7 n7 P5 u
    可能此词典作者还没有公开过吧。。。
    - t) u5 C5 z6 z( H' p  U' n" W, N4 Q! y3 G* X
    dog

    7 l* Q. o( ^# ^4 |+ G' c' Z% x0 s( K/ t& k
    谢谢您提供的信息,通过重写<a>的href,现在页内跳转已经可以正常工作了。( U' S3 I+ E: y" o
    - v# w6 U+ i, F) U9 r
    您可以在顶楼提到的MDict online demo页面确认。

    该用户从未签到

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

    该用户从未签到

    发表于 2015-8-6 08:09:24 | 显示全部楼层
    " r$ t- F; y. `) a4 }; i# ~

      `) s9 `* V( W3 e# P3 A  L& ~感谢楼主辛苦工作。3 V& C. B1 q+ l
    反馈一个。/ {; v+ o1 u/ a1 W3 C3 Q
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至不能用鼠标选中复制 OR 粘贴(进)查询框里(的内容)。
    # p& V. c  H! I# ?/ y. a3 e如图,我想复制查询框里的 faint ,貌似不可以。我想粘贴剪贴板里的东东进查询"框",貌似也不可以。
    0 F( X$ ?( D7 {3 O1 i4 y, w; Z: O5 q$ E4 r0 q3 N2 j( S& O0 D' ^

    4 \/ f  t, Y7 }7 X; [
    , Y6 l/ S" A# c9 n! P0 k

    该用户从未签到

     楼主| 发表于 2015-8-6 08:51:32 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 14:12 编辑 % e+ E/ V' Q' X, U
    Oeasy 发表于 2015-8-6 08:09( m1 t; O5 p2 j1 r
    感谢楼主辛苦工作。
    ! p7 j2 z, z& q% n* B6 t; ]1 u反馈一个。& r( A+ D7 J1 Q  w/ \- j/ D
    查询框不太方便,要输入新词的话,需要先光标删除旧词(字母),甚至 ...

    9 i% M7 F7 I; p! z7 m6 @! K8 X' }6 V+ j' u1 \3 A
    这只是个概念验证/功能演示版,离完工还远着呢。
    6 @( R! g9 Y0 D$ B# _- v! z) C' T# b, K现在专注修改核心,界面等有空慢慢改吧,* h5 z8 ~6 z8 e7 L- {' _
    真希望有UI/UX经验的同道加入合作。8 A% x3 Y4 Q1 l

    # Y- u, p% V3 T具体到这个输入问题,我会替换autocomplete部件。

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-8-7 08:54:21 | 显示全部楼层
    ok927 发表于 2015-8-7 00:34( R) g& m* a  r0 Z( B+ e" `$ F# V+ {
    语音方面,建议支持mp3格式的mdd文件。
    4 W8 x1 e! S  _; D% U9 ^
    已经修改了程序,应当可以支持MP3语音。同时改善了候选词条的显示速度,更加流畅。
    ' g9 a/ Z+ R2 [" c- B1 @8 m. T! {: ~7 N: Z( k& X+ \2 Z! C
    不过我手头没有使用MP3语音的字典文件,可否提供一个用来测试。
  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 2264 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:03:23 | 显示全部楼层
    fengdh 发表于 2015-8-5 15:41) h0 i( ~) N7 w5 X  i+ x5 m
    谢谢您提供的信息,通过重写的href,现在页内跳转已经可以正常工作了。  D7 F  r  i. u  V5 t7 i, c
    2 u( g5 [; @% q. m0 s
    您可以在顶楼提到的MDict on ...

    1 I9 o; `& ~" C, |5 L2 l- h不错!不过还有一个bug( @+ H/ O; W# C9 o( d& t& ^5 P
    <a href="entry://dogged" class="C_REF">dogged</a></3 y" C2 V, @. M
    没有进行entry://进行二次替符合你定制的查询格式

    该用户从未签到

     楼主| 发表于 2015-8-7 13:11:20 | 显示全部楼层
    本帖最后由 fengdh 于 2015-8-7 13:32 编辑
    $ [5 l3 g  Y) k" Q
    peterdocter 发表于 2015-8-7 13:03! n- x- J& {  D# \' @4 }
    不错!不过还有一个bug( M8 U4 m# X) g' W3 }6 L9 f, |& Q
    dogged

      @# J" D7 Y6 ~. n2 W/ K% ?# S  I3 F3 y: Q
    这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。2 z; I7 V+ k. y0 Z: g. U7 t7 E

    8 k# A9 ]  [; K7 k! {, r( |当点击形如 entry:// 非页内跳转链接时,延后动态解析,如果字典中存在该项目仍然会跳转。
    1 I% u0 L$ ]& I6 E* |5 {. S
    ! k1 g( Q+ {9 s2 @" v% t不过您给的 dog.mdx 里只有一个词条,自然无法跳转了。
    * E9 t4 i; k5 ^$ L( t' c9 U  r- @! k0 {0 o9 g& V
    已经把不论页内页外链接都改成延后解析再跳转。
  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 2264 天

    [LV.Master]伴坛终老

    发表于 2015-8-7 13:18:56 | 显示全部楼层
    fengdh 发表于 2015-8-7 13:11- t1 h3 t& T9 ^: F) ?0 @1 L
    这个其实不是BUG,仓促修改有点前后做法不一,我以后会尽量修改。
    # v" k" }5 N6 @+ o' n) Y6 R  y: H0 o! Z( |" W/ C
    当点击形如 entry:// 非页内跳转 ...

    ' ^( Y/ n- ~& u  |" m% ^再给你demo调试,而且可以连跳了
    4 @" C- M6 t# O5 q& s

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2015-8-7 13:41:24 | 显示全部楼层
    peterdocter 发表于 2015-8-7 13:18* x% N) Y  y' i3 \, P* U8 v
    再给你demo调试,而且可以连跳了
    % w3 `; |+ e- a' X
    我已经把页内页外跳转都改成延后解析了。所以状态条仍然显示为entry://***。请确认一下。
    ' Y) N. ]% {% t: V2 x$ n, ?7 ^& X2 `
    另外看到您后来给的dogs.rar中出现了 mdxentry:// 这样的链接,应当也是字典内资源链接。除此之外还有类似的吗?
    % F+ s' x4 @, Z  P- ^+ L8 Q4 E9 ]- [. a7 l5 _. k& y. K' {
    dogs.mdx语音似乎使用了mp3,能不能提供mdd文件我好测试一下mp3支持。) Q8 L1 ^6 ~5 X0 D" e+ X

    : u- T( B8 k9 _- y/ r回复验证太麻烦,试了试发私信不知有没有看到?

    该用户从未签到

    发表于 2015-8-30 20:56:23 | 显示全部楼层
    本帖最后由 STFU 于 2015-8-30 21:51 编辑
    . K! o1 R5 v# t" n5 M+ c5 a/ w6 |' g# d* _% {  B$ J/ X. G1 ~+ r& H0 e
    支持!, h& U8 l. _5 @# I5 r1 x0 _9 F4 A
    原來樓主就是因為Chrome插件而開發的
    $ i7 v/ b% K8 ^5 Fhttps://github.com/fengdh/ChaZD
    . q9 d. N" {0 F
    4 w/ K7 X2 ^! ]# {今年度有可能融入到插件裡嗎?

    该用户从未签到

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

    该用户从未签到

     楼主| 发表于 2015-9-3 08:27:10 | 显示全部楼层
    bt4baidu 发表于 2015-9-1 17:51
    0 X* @4 l' b' z' N3 h, \词典里面有javascript脚本的话,似乎解析不出来

    7 k2 q* |: ]8 q& P- F3 {' U原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    该用户从未签到

    发表于 2015-9-3 15:36:08 | 显示全部楼层
    fengdh 发表于 2015-9-3 08:275 ?3 w, k, g8 }% ^' X, B
    原闻其详。如果能够提供含JavaScript的mdx实例来调试就更好了。

    ) w. o5 N; r8 t. A. V. C' bhttps://www.pdawiki.com/forum/fo ... &extra=page%3D1
    " I& m$ K! `5 _& }4 x. \* S; Z# o里面的动态功能都是js-AJAX实现的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-4-27 19:19 , Processed in 0.025504 second(s), 26 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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