|
本帖最后由 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)这个函数:- 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文件,也不行
有没有人知道该如何实现这段代码 |
|