|

楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑 6 [' ]% _1 f/ u
! d; K9 o/ m/ q
. l3 c) @6 o+ g; F已经修改了online demo,加入了对内嵌JavaScript的支持。
' l1 S" p. S: F' M1 _# D' z. b+ x8 l2 Q0 x) ?: J& y3 E# `# x, Y
关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
3 \: S& M' ]) f* \( R# Z2 K不知道你有没有兴趣一起开发?我想做成这样的9 f1 }, A- Y' y& n, j- W
http://www.hi-pda.com/forum/viewthread.php?tid=1210672
2 B* `. `4 L6 b. B2 V4 u
/ N- p+ A6 w5 \. n' m* |, h
7 O+ {6 @/ v% [$ L9 }有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
2 _% l/ t6 N7 A1 o) @! t i: y- 0 x* Z# t$ M0 B
- (function _my_code(window) {
- A4 }( U" C4 E5 C3 Z3 b - function u(c, n) {..}6 |! r+ B' E3 b E% m) x, }, p+ Y
- .. 1 M' Y3 p, X; F4 @6 }1 r0 G5 t
- function w() {..}1 \, }6 [) ?/ P3 s- n; F5 C
- var F = 0;
4 z# I2 I' G. `* c" _
! Y6 p- c2 B3 }1 _- function i() {
' h" ]$ @0 W4 V5 @4 v - if (!F) {% l. S! b. J3 M, [0 Z& L" t
- F = 1;2 }2 o P5 m: k
- w();
) c; x; ~: [ t$ b3 r9 i' ]# c - if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);. K! x9 ^6 c. w. l9 W6 ]4 U( S
- }
+ c, [+ \4 ]# z" g" B' o - }
6 [# x+ W; X4 s - if (window.addEventListener) window.addEventListener("load", i, false);
2 g- A6 g+ t/ E$ R3 t4 ~; W' s - else window.attachEvent("onload", i);. N7 ]. U; f4 P: i) O
- ; z, \5 ?, Y# Y6 I, v/ p
- }) (this); /* In global scope, "this" is the window object. */$ Q# u. w `& T! m) V) g7 x" R
复制代码 & y+ I ^6 x/ i1 q
, x/ j, S( _: M6 x8 b# A
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。" F5 |7 n5 X+ P; W/ M9 A" r! x
( ?2 ?, ]& |& a% b! p. W另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|