|
|

楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑 ! B2 ~9 i/ l' D2 k/ G# D& m* [$ {1 m) p
B% P2 Z) l. v' b8 t5 u- h
4 B3 y# Q6 u, X0 ]! h% j0 g$ |
已经修改了online demo,加入了对内嵌JavaScript的支持。
# i& K3 l: c1 Y# t3 a0 W
0 M# v3 J3 U# A& S关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。) J9 D8 B! [8 [0 m0 G2 O* G
不知道你有没有兴趣一起开发?我想做成这样的
2 n: ], ]- [% K+ jhttp://www.hi-pda.com/forum/viewthread.php?tid=1210672
2 l K/ G7 d" u n! h& d& i8 l
3 i7 v1 u! m% T3 e Z+ ?( I% p) }! G5 U" j! U
有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
7 Y& L; I- N L$ z" u B& p8 d1 h2 p
) q* q& ]. z* } U! x& B1 ~. ~- (function _my_code(window) {7 |: k& s& T0 e2 t+ E
- function u(c, n) {..}
: b" l4 m5 x. V/ |) F$ h- h1 c - ..
! c$ r d y# i$ v7 z! A - function w() {..}
9 ^. E, K$ Q. M3 g5 M: T: d - var F = 0;
8 I! `' u1 r# K" D! t0 }
# D( D: m! V' ] A4 {+ a- function i() {
/ a6 T {, {. R - if (!F) {& M, D% F$ N5 p) g P+ N) V8 E
- F = 1;) m. {7 Q' v# K! M
- w();
3 ~! J4 v, W, c - if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
$ T1 |7 K7 t5 Z$ ?! x9 T - }
9 \' o# k* }, O9 ] - }
: Z0 o1 f( U9 R+ r/ T& F. Y - if (window.addEventListener) window.addEventListener("load", i, false);
+ ?/ N% } f) J. A% N. w! A - else window.attachEvent("onload", i);
+ g0 z+ k6 M' ~" U - 2 j) Z/ p$ S1 L2 C- [9 w/ `
- }) (this); /* In global scope, "this" is the window object. */& W* M6 g4 k7 \3 O! X2 F* T$ \+ }
复制代码 5 w5 C$ `4 B& X. d5 y
' n% C9 C0 z! U5 j# g* r1 a
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。# d( T+ N5 E) U6 L# U
: ~& z; P; i* G* k( X& a
另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|