bt4baidu 发表于 2015-9-3 15:44:29

如果做成chrome的插件,能在chrome页面里分成左右两栏来,左边显示浏览网页,右边是词典查询界面及查询结果就好了,那样的话goldendict也可以退休了。楼主加油{:4_105:}

fengdh 发表于 2015-9-4 13:30:21

本帖最后由 fengdh 于 2015-9-4 16:32 编辑

bt4baidu 发表于 2015-9-3 15:36
https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=12743&extra=page%3D1
里面的动态功能都是 ...

已经修改了online demo,加入了对内嵌JavaScript的支持。

关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
不知道你有没有兴趣一起开发?我想做成这样的
http://www.hi-pda.com/forum/viewthread.php?tid=1210672
http://www.hi-pda.com/forum/attachments/day_130624/1306241305eddec3df8b826a28.png

有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:

(function _my_code(window) {
   function u(c, n) {..}
   ..
   function w() {..}
   var F = 0;

   function i() {
   if (!F) {
       F = 1;
       w();
       if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
   }
   }
   if (window.addEventListener) window.addEventListener("load", i, false);
   else window.attachEvent("onload", i);
   
}) (this);/* In global scope, "this" is the window object. */


具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。

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

bt4baidu 发表于 2015-9-4 14:07:47

fengdh 发表于 2015-9-4 13:30
已经修改了online demo,加入了对内嵌JavaScript的支持。

关于插件,联系过ChaZD插件的作者,看他能 ...

差不多就是chazd那种效果了,最好弄成Goldendict那样的查询结果界面,里面再弄个右侧小浮动条之类的,可以快速跳到具体某一本词典的查询结果{:4_104:}
要是可以左边双击网页上的单词,右边直接出查询结果就更帅了{:4_95:}

mdict格式内嵌js的词典,差不多数我做的最多,js写得最复杂的要数本人的voc系列了,只要这个支持了别的应该都不会有问题
当时倒是没考虑模块化那些,以后有时间再改吧{:4_91:}

一起开发,恐怕抽不出那么多时间,而且js差不多是我最不喜欢用的语言,没怎么研究过node.js啥的,只会web1.0那些+AJAX,水平实在是相当有限了{:4_109:}

bt4baidu 发表于 2015-9-4 14:34:35

具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。

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

l.js不支持也无所谓,那几个level主要是背单词表用的,不涉及查询
resize是为了对齐单词用的
querySelectorAll啥的没敢用,因为PC版mdict的IE内核是6.0的,XP上最多升到8,但是用mdict的人还特别多,当时为了兼容想了很多办法

bt4baidu 发表于 2015-9-4 16:26:35

bt4baidu 发表于 2015-9-4 14:07
差不多就是chazd那种效果了,最好弄成Goldendict那样的查询结果界面,里面再弄个右侧小浮动条之类的, ...

画个图{:4_105:}

https://www.pdawiki.com/forum/data/attachment/album/201509/04/162522blsa1aqaqte18kwd.png

zyt77019874 发表于 2015-9-9 11:01:33

非常感谢提供下载

zhlpen 发表于 2015-9-29 16:28:58

好像现在的bluedict 7.就可以支持Javascript功能

人生难免有今日 发表于 2015-10-4 16:49:21

高科技啊。可以放这个网站一份不

aipie0066 发表于 2019-10-31 23:19:11

太牛了,可以支持多本词典不?

t891377 发表于 2020-7-16 16:04:11

大神可以弄一个java的解析库吗

reuse 发表于 2020-7-17 22:37:05

这个今天有又试了一下,很方便
页: 1 [2]
查看完整版本: 纯JavaScript实现的MDict解析器,请大家提建议