掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 4849|回复: 4

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

[复制链接]

该用户从未签到

发表于 2014-4-2 21:27:29 | 显示全部楼层 |阅读模式
本帖最后由 yaodis 于 2014-4-16 12:39 编辑 8 z3 V6 x  I! K3 |
% s3 m( {3 b- K' M* a
适合高阶英语学习者的 Vocabulary.com Dictionary 优美发布 这个帖子中可以下载半成品
7 I' h5 i$ j* j8 v
" ]" o5 ^7 Y8 t  q4 N3 F目前主要的问题是,论坛里没有明显的关于mdict如何实现javascript的明确说明,或者说关于mdict对javascript支持程度的说明
5 l- g  H+ k6 ]' O! w使用谷歌site:pdawiki.com方式搜索论坛,我只发现了这两个帖子  F( n( I# r9 N+ D8 Y0 |
“mdict”的经验交流分享,mdict是一个优秀的便携式数据库
- I6 i" M! m" ]: l, w/ r3 |Mdict 是否支援 javascript *.js 檔?
2 z+ q1 g4 T0 Y* M/ G$ z! H+ }& W, P! z) W6 i- _
第一个帖子中两种方法大概是mdict唯二能用的了,因为当我想把里面的<a href='#'>换成<a href="javascript:void(0)">这种浏览器常用取消页面回到页首的方法却发现mdict里又出现错误,说明mdict连这种基本的javascript都不支持: E0 o; N/ {$ l0 y% Y
+ C# ~' T4 ]5 @/ g6 }! c
昨天还发现vocabulary.com里面实现show和hide好像是javascript的一个高级库jQuery(下面的代码里你会看到有hasClass),所以我更不对能实现原网页效果抱有希望了
# l+ h5 L3 G; E: h8 `. u& J+ x3 w  r" Q. m% `# ?1 w
而mdict这能用的唯二方法,我都觉得加不加上没什么意思了,加上了反而还影响页面搜索的功能(必须点开了才能搜到)
' h+ X% [$ V) ?1 K! E5 G4 Y( q
5 H0 @3 v# c# M# x) c% S所以我是不会再去弄他了6 [. m9 E! U/ z

7 M. M2 d; Z, k-----------------------------原贴分割线--------------------------1 T/ V3 P/ L3 `1 t" I$ d3 u
% d" V; G/ w' o/ ]3 }8 O8 G( p3 x  E

2 t3 ?- E4 I' G  @: u( n最近在制作vocabulary.com离线版,上图中左边是原网页,右边是我抓取的网页,不包含.js,包含部分css,目前显示效果如图
' }9 J1 b: B' N很明显show example不能像原网页那样显示0 I$ a1 U- ], g
1 V4 _7 W+ j, b! C! }  l; _
我用chrome浏览器的inspect element查看这里代码是
: ?# u/ Q9 g# E9 F- F5 L<dd class="more">7 w( p- ]; ?8 V0 I+ ]0 r) }2 Z
<a href="javascript:void(0);" class="expander" onclick="toggleList(this)">show 335 examples...</a>
3 ^: s; [$ {- H. t5 }& _</dd>
6 ^$ `% L3 U, W5 v9 n5 s<dd class="less">( b  y# u* E: p' s5 S+ \
<a href="javascript:void(0);" class="expander" onclick="toggleList(this)">hide 335 examples...</a>
' d7 @3 l' Y+ R</dd>
0 X* S# {: w) D; N. _; Z<dd class="less">, y. G6 R2 s/ N9 G6 ^. P! M& F1 v3 R
...7 a+ T3 k, V% s- J; I" g8 `
</dd>6 f' A4 ], g1 M0 `& t
由于对应的css文件中有这样一条. l0 b6 ^1 ]# B
dd.less {display:none;}% p. d* Z' ^& R1 s1 Z$ I
这样hide example和下面的单词就不会显示了# p; i/ O* o- [/ u3 x3 c
) ^% P) n( U$ \  [+ X5 \
下面的问题是如何用javascript替换more和less
4 J0 L/ f9 A. Q3 p( V* P$ q! t. P9 \3 c' \6 d( H' R- M. h
又在原网页引用的一个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")}}};
复制代码
我尝试在词条里加入这样的代码& U5 h* x% V' |$ R( I
. W, Y& v, C1 ]% O5 ~6 @+ L
<script type="text/javascript">2 y' T. H+ d3 E7 j2 R  _" i$ C3 X" b2 @
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")}}};3 h% c: B( _6 ]. b0 L  P
</script>8 p) n) p; H/ v- ^

9 }4 {& M8 k6 |6 V& ?: J0 z  z不行,或者src引用js文件,也不行1 v5 T1 X$ f$ v* T. C6 [% z% G
4 d  m7 u1 }4 ^; [
有没有人知道该如何实现这段代码

本帖子中包含更多资源

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

x

该用户从未签到

 楼主| 发表于 2014-4-2 22:07:17 | 显示全部楼层
本帖最后由 yaodis 于 2014-4-2 22:17 编辑
$ ?9 U* c  p$ j  t& _  e  j% q) t6 T
# X* k! _; b: W7 J9 A2 J, F: f是不是与这个element有关,我看报错里提示这个

该用户从未签到

发表于 2014-4-3 08:40:48 | 显示全部楼层
MDict PC版本质就是个小浏览器,要实现楼主想要的功能是可以的。附件里是直接把http://www.vocabulary.com/dictionary/content页面全部保存,制作成的mdx。接下来要做的工作就是把不需要的代码、内容去掉,这个工作量不小,至少要求能读懂js代码吧。看谁有时间、精力帮忙咯。0 Y  t' P8 \7 V3 v$ J) I4 `) A
不过说实话,vocabulary.com下面那个词典就是排版稍微好看点的WordNet(http://wordnet.princeton.edu/ 已有各类词库)。整个页面比较有新意的是7 r7 Y- }: o6 @, L/ ]
If you feel content, you're satisfied and happy. The content of a book, movie, or song is what it's about: the topic.) e( F* F( }7 ~6 j
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.

本帖子中包含更多资源

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

x

该用户从未签到

 楼主| 发表于 2014-4-3 10:03:55 | 显示全部楼层
本帖最后由 yaodis 于 2014-4-3 10:54 编辑
  w. s+ g% E! q8 \# e
Oeasy 发表于 2014-4-3 08:40 - k8 ]. J- D% ~+ h+ }, A$ r
MDict PC版本质就是个小浏览器,要实现楼主想要的功能是可以的。附件里是直接把http://www.vocabulary.com/ ...
" A" N1 v- B" m- q3 K% e

3 t' {: H2 b7 r, M5 k  n) b就是为了这个新意的解释去的,现在想锦上添花,而且这个wordnet也不光排版好看,内容做了调整,解释按词义分类,而不是单一的 n v adj 这样分,把原来吓唬人的专业术语改成了type, type of,而且type里关联词也都给出了简单的解释,我觉得这个wordnet比原来的实用性更高. X9 @( w( b$ [% y

该用户从未签到

发表于 2014-4-3 10:24:23 | 显示全部楼层
本帖最后由 Oeasy 于 2014-4-3 10:27 编辑 9 Z: H) b! o+ L& I! t
yaodis 发表于 2014-4-3 10:03
2 K( V! K# K3 [; K+ F( T9 ^就是为了这个新意的解释去的,现在想锦上添花,而且这个wordnet也不光排版好看,内容做了调整,解释按词义 ...
9 k" ]( a% d9 }: n3 u: C$ w: r* Q

& N$ \3 D) j/ o$ I/ Q有提示,别管它,多等一会儿。截图:, v* x. n/ u, U0 s( y
( a  K% Y$ v$ h0 I0 B" L
MDict for PC 1.3 RC4
8 T2 X5 D; t* \6 {) J/ x0 Y; o0 y8 k5 T1 @  b7 |

) m7 n% P/ n* t" v- j2 x
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-4-27 09:08 , Processed in 0.020237 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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