|
楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑
; l3 h# S0 P5 S1 q
- p5 X1 U2 V. t6 p& h( ~, h2 q
; I* G, L. {( s$ p: H2 Q已经修改了online demo,加入了对内嵌JavaScript的支持。
5 V0 P2 ~6 ?* W% z( ]0 s, d! |. C9 M1 z0 z; n5 w) }, J; k: l5 a" L$ p
关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
4 ?8 ~3 C- D- c不知道你有没有兴趣一起开发?我想做成这样的
; i' U' [, |8 w# Dhttp://www.hi-pda.com/forum/viewthread.php?tid=1210672; e! k+ Y2 }' ~, T" F6 ~( e, O* A
$ q. s! i( l) i& D$ D- N3 V: s. x: _' y, i- s+ O( {$ j
有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
9 }: d, H' H# _) i$ Y4 u. B
3 U& F; D6 }2 I+ p8 E- (function _my_code(window) {: m2 c0 {; W8 q2 x
- function u(c, n) {..}/ J7 h' _6 B& Z5 j& r3 f
- .. 0 F0 ?0 M1 m* i9 i% S
- function w() {..}
q) N) x' S) n( P5 L - var F = 0;
: ?+ O7 S8 T% [6 |
, g; @. }- o5 N C Q2 r7 Z- function i() {
' j' ], {! @3 N8 K - if (!F) {
* v' x3 N2 O, v7 n1 G - F = 1;% ^$ B7 R- \! D, f) e
- w();
6 ]% N D; a O7 z7 T% z - if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);) K5 Y" i l1 b- J' V! v6 o: x
- }; E- a8 s* ~- X5 |
- }
0 t" D4 c! W, O+ Y& z - if (window.addEventListener) window.addEventListener("load", i, false);: h: J, _# k$ u; `8 o
- else window.attachEvent("onload", i);
% j$ O7 i: z! e7 g* X - 3 I- S6 d) X% }( |$ i
- }) (this); /* In global scope, "this" is the window object. */& c) M$ V' }; [) T; F. Q2 K$ y: I% ~
复制代码 j& B0 c! d. `3 N( q, d$ f
& G0 J- _& }0 y- V5 e, H) Y* |) l
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
# p g3 h: y* R5 B' p a7 r; I# W/ i) K V
另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|