|
楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑 5 V- P1 \: m/ }& z: p
! a: X! r W; t( A
* ?' j4 w, E" k0 s% S* \: v已经修改了online demo,加入了对内嵌JavaScript的支持。# i6 T& A0 K8 ?- f$ R
* F7 J% |9 c3 K9 M关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。9 K. p3 M6 G5 s; D# k _
不知道你有没有兴趣一起开发?我想做成这样的
8 y! ~& w) g! j2 N' d3 Hhttp://www.hi-pda.com/forum/viewthread.php?tid=1210672
/ F: u- S0 d6 Y/ h
$ j' F+ O/ k; C) I
6 O2 K4 C1 ]' s2 C( s( A& h; o有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
' o; ^: G! r- d4 C% F! g2 N- % M( A$ B2 r, i! I# k
- (function _my_code(window) {
N" ], ^2 m, v5 N; S3 y9 U1 a# _( h% B - function u(c, n) {..}5 [) d& G) N8 `. R2 h
- ..
) m8 `& a9 b% r5 {/ [ - function w() {..}
& ?! o& L, q- |+ @+ s' Y - var F = 0;3 c6 a: [, M3 Z: x2 j
- # I1 {1 H9 {' s5 h0 p1 r
- function i() {
* x+ w7 q1 Z* W0 l - if (!F) {: L9 Y8 I* \7 Z& A1 _# K9 p: z
- F = 1;
7 v/ S2 q7 s) x, M5 _6 b% J - w();
+ R$ m- S) c! Z" I3 k - if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);' }5 P1 |- e) e, z6 M7 _3 U
- }
% ~ u& N) i1 c7 t. n8 Q - }& b* @& R r5 ]8 `/ J' A
- if (window.addEventListener) window.addEventListener("load", i, false);
' V4 B# T- O; G2 S2 `/ Y - else window.attachEvent("onload", i);
( D4 [3 J$ w* ] V - 0 y7 W! U& `7 |2 v
- }) (this); /* In global scope, "this" is the window object. */ g5 D( ^3 p9 m% C1 N L
复制代码 ; M3 h4 W: j+ F% |' K& P# G$ c6 P
& t9 L0 r2 _" u/ y! ^4 x
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。% g; O& I" K4 i+ ~; H
4 W: N" m& x& f' H另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|