|
|

楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑
+ u L) H1 S. q
* M1 q! Z0 T8 F$ D) q* X0 b
" [6 f0 A. I' z! |& C已经修改了online demo,加入了对内嵌JavaScript的支持。5 [0 h! `! v' \. H x
6 O# A' w j1 r- I) x
关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。* _9 D% g! n2 r5 a1 M
不知道你有没有兴趣一起开发?我想做成这样的: e; r8 {% x, X+ W }+ w4 e
http://www.hi-pda.com/forum/viewthread.php?tid=1210672' K" N: \- _0 e

# V' U7 u4 D$ ?3 @+ \" ?% y" Z: D! O- j# i1 M4 u: y
有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:* i( W0 s# w# l" Z4 d8 X8 M6 }
- . k' l d$ V5 k" w9 B
- (function _my_code(window) {
' k3 B( {9 I [3 \. [ - function u(c, n) {..}9 K. G- e" [8 s Z, R: B- H
- .. 7 s4 D! m* f0 k8 t
- function w() {..}
# Y) I q2 F, ^ - var F = 0;
& `. R; ^* C+ H2 {% q
8 L6 n t5 j! M2 u \0 G; t$ \- function i() {6 Q8 J8 o! ~! J$ {
- if (!F) {# j; r1 y! n$ s$ O0 l0 T
- F = 1;
d( O: A: a M+ M! W - w();
( E' G& n' ~0 S t( e - if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);( Z6 E% i# u E8 X- `1 |
- } \" T( u# s+ h% [5 R }
- }: ~* {4 ]: ]5 z+ }% g& F2 C
- if (window.addEventListener) window.addEventListener("load", i, false);4 x% ^& T3 a/ Z+ T9 C
- else window.attachEvent("onload", i);% r" q. k* e- o7 a; e
-
% L4 u: l2 u s0 F8 R) l - }) (this); /* In global scope, "this" is the window object. */
1 E( _1 c0 U4 g2 G2 n h8 a
复制代码
* R9 e) F- G% K, e1 s$ L% B; ?! l- ^! R$ p- _
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
/ e' \8 S! |" m) ?( X$ \6 h( W$ v. D
另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|