|

楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑
0 o; P4 y. }! F, a4 O* @7 T2 n7 F: T1 _, ]
# u' A$ Y) r! W' C2 |
已经修改了online demo,加入了对内嵌JavaScript的支持。
% f. H9 G( t! b( Y0 v Q1 S0 f w* H: Y
关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。; o, ]4 H( G0 l9 n% i
不知道你有没有兴趣一起开发?我想做成这样的
" I7 I2 R" P' \4 nhttp://www.hi-pda.com/forum/viewthread.php?tid=12106720 U1 y% C9 w! C0 H$ m

% n7 b1 D. W$ d7 j% g9 A( b5 M7 x
/ b9 G: I" I4 Z1 n" C# P7 m有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:/ b# l% V0 d4 q! ]* x4 k* k3 R' ]
- t# L2 C- H" T/ P- i- (function _my_code(window) {' g" d* H- Q v, |% h- b7 N+ f
- function u(c, n) {..}5 y( E1 J% {2 m. A& D
- .. , Q% z" H3 S( S. T; a
- function w() {..}5 `9 Q O4 l* N" r4 T% B" }8 Q& e
- var F = 0;; S5 n, @5 Z5 e1 |1 I: K6 R+ ?
- % b: Q! q% R# ~5 m) B
- function i() {
: E6 W$ _9 {5 p% l, z/ s - if (!F) {
5 z$ P6 X+ h |+ } - F = 1;8 Z$ T+ v( I5 U" ?
- w();6 D4 S( v( J7 V4 P$ V# k
- if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);) J+ W' S! y- @; N& W; l
- }# a6 v/ \- V- l4 a; L6 T/ D
- }
7 D) a; _5 W8 ?4 C( ^: B - if (window.addEventListener) window.addEventListener("load", i, false);
2 }3 q2 ?" ~6 ]4 ^ - else window.attachEvent("onload", i);
' p# y* D, ]# L) D& c! R {& s( {/ {7 \ -
& j1 M9 u# O. i% e; r5 N# ]1 T - }) (this); /* In global scope, "this" is the window object. */* _7 l4 `: Y3 O2 J. C
复制代码
3 p5 r3 b( H; e7 c/ D2 w8 i9 A- e: H9 D. U
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。0 {5 ^" s0 S9 p
; m V7 i- j% d$ _- R, I
另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|