查看: 3992|回复: 4
打印 上一主题 下一主题

[求助] 请教mdict中如何实现这个javascript

[复制链接]

该用户从未签到

9

主题

162

回帖

1983

积分

解元

Rank: 5Rank: 5

积分
1983

灌水大神章小蜜蜂章笑傲江湖章

跳转到指定楼层
1
发表于 2014-4-2 21:27:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yaodis 于 2014-4-16 12:39 编辑

适合高阶英语学习者的 Vocabulary.com Dictionary 优美发布 这个帖子中可以下载半成品

目前主要的问题是,论坛里没有明显的关于mdict如何实现javascript的明确说明,或者说关于mdict对javascript支持程度的说明
使用谷歌site:pdawiki.com方式搜索论坛,我只发现了这两个帖子
“mdict”的经验交流分享,mdict是一个优秀的便携式数据库
Mdict 是否支援 javascript *.js 檔?

第一个帖子中两种方法大概是mdict唯二能用的了,因为当我想把里面的<a href='#'>换成<a href="javascript:void(0)">这种浏览器常用取消页面回到页首的方法却发现mdict里又出现错误,说明mdict连这种基本的javascript都不支持

昨天还发现vocabulary.com里面实现show和hide好像是javascript的一个高级库jQuery(下面的代码里你会看到有hasClass),所以我更不对能实现原网页效果抱有希望了

而mdict这能用的唯二方法,我都觉得加不加上没什么意思了,加上了反而还影响页面搜索的功能(必须点开了才能搜到)

所以我是不会再去弄他了

-----------------------------原贴分割线--------------------------


最近在制作vocabulary.com离线版,上图中左边是原网页,右边是我抓取的网页,不包含.js,包含部分css,目前显示效果如图
很明显show example不能像原网页那样显示

我用chrome浏览器的inspect element查看这里代码是
<dd class="more">
<a href="javascript:void(0);" class="expander" onclick="toggleList(this)">show 335 examples...</a>
</dd>
<dd class="less">
<a href="javascript:void(0);" class="expander" onclick="toggleList(this)">hide 335 examples...</a>
</dd>
<dd class="less">
...
</dd>
由于对应的css文件中有这样一条
dd.less {display:none;}
这样hide example和下面的单词就不会显示了

下面的问题是如何用javascript替换more和less

又在原网页引用的一个dictionary-1hbh6zq.js文件中找到了toggleList(this)这个函数:
  1. window.toggleList=function(ele){while(ele&&ele.nodeName!="DL"){ele=ele.parentNode}if(ele){if(Element.hasClass(ele,"expanded")){Element.removeClass(ele,"expanded")}else{Element.addClass(ele,"expanded")}}};
复制代码
我尝试在词条里加入这样的代码

<script type="text/javascript">
window.toggleList=function(ele){while(ele&&ele.nodeName!="DL"){ele=ele.parentNode}if(ele){if(Element.hasClass(ele,"expanded")){Element.removeClass(ele,"expanded")}else{Element.addClass(ele,"expanded")}}};
</script>

不行,或者src引用js文件,也不行

有没有人知道该如何实现这段代码

ScreenClip.png (65.71 KB, 下载次数: 0)

ScreenClip.png

该用户从未签到

9

主题

162

回帖

1983

积分

解元

Rank: 5Rank: 5

积分
1983

灌水大神章小蜜蜂章笑傲江湖章

2
 楼主| 发表于 2014-4-2 22:07:17 | 只看该作者
本帖最后由 yaodis 于 2014-4-2 22:17 编辑

是不是与这个element有关,我看报错里提示这个

该用户从未签到

2121

主题

2961

回帖

6万

积分

翰林院修撰

不忘初心。送分大人,灌水砖家。擅长抛砖引玉,挖坑不填。

Rank: 12Rank: 12Rank: 12

积分
61056

翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

3
发表于 2014-4-3 08:40:48 | 只看该作者
MDict PC版本质就是个小浏览器,要实现楼主想要的功能是可以的。附件里是直接把http://www.vocabulary.com/dictionary/content页面全部保存,制作成的mdx。接下来要做的工作就是把不需要的代码、内容去掉,这个工作量不小,至少要求能读懂js代码吧。看谁有时间、精力帮忙咯。
不过说实话,vocabulary.com下面那个词典就是排版稍微好看点的WordNet(http://wordnet.princeton.edu/ 已有各类词库)。整个页面比较有新意的是
If you feel content, you're satisfied and happy. The content of a book, movie, or song is what it's about: the topic.
This word has two main meanings. The first has to do with being pleased and satisfied (feeling content) or making someone else feel happy and at peace with things (contenting them). The other meaning has to do with subject matter: the content of a history class might be American history. The content of a math class might be geometry. As long as there's a topic or subject, there's content.

content_Test_mdx.rar

200.54 KB, 下载次数: 11, 下载积分: 米 -5 粒

该用户从未签到

9

主题

162

回帖

1983

积分

解元

Rank: 5Rank: 5

积分
1983

灌水大神章小蜜蜂章笑傲江湖章

4
 楼主| 发表于 2014-4-3 10:03:55 | 只看该作者
本帖最后由 yaodis 于 2014-4-3 10:54 编辑
Oeasy 发表于 2014-4-3 08:40
MDict PC版本质就是个小浏览器,要实现楼主想要的功能是可以的。附件里是直接把http://www.vocabulary.com/ ...


就是为了这个新意的解释去的,现在想锦上添花,而且这个wordnet也不光排版好看,内容做了调整,解释按词义分类,而不是单一的 n v adj 这样分,把原来吓唬人的专业术语改成了type, type of,而且type里关联词也都给出了简单的解释,我觉得这个wordnet比原来的实用性更高

该用户从未签到

2121

主题

2961

回帖

6万

积分

翰林院修撰

不忘初心。送分大人,灌水砖家。擅长抛砖引玉,挖坑不填。

Rank: 12Rank: 12Rank: 12

积分
61056

翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

5
发表于 2014-4-3 10:24:23 | 只看该作者
本帖最后由 Oeasy 于 2014-4-3 10:27 编辑
yaodis 发表于 2014-4-3 10:03
就是为了这个新意的解释去的,现在想锦上添花,而且这个wordnet也不光排版好看,内容做了调整,解释按词义 ...


有提示,别管它,多等一会儿。截图:

MDict for PC 1.3 RC4