|
楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑
4 M1 V! R" i5 _6 ~3 V. a" g8 p3 B
/ a7 ^3 \) ]+ E1 ~已经修改了online demo,加入了对内嵌JavaScript的支持。
* G9 ?- C$ H' p9 h2 S/ ^
* i) T6 P. |# c8 y" N8 ]) f' j关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
3 b- |: @ c8 d$ E8 u3 E6 B3 ]不知道你有没有兴趣一起开发?我想做成这样的
3 C9 H; o' ~8 @' O0 b- qhttp://www.hi-pda.com/forum/viewthread.php?tid=12106720 L# ~1 ?* U5 Q: n
[) s# h7 t8 Q2 p8 _" _
+ F T- l. y0 ~% }1 i9 ~6 N, X
有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:+ `+ h( i5 [9 d/ X/ u* Z9 P
- 2 _) n0 f. T/ ] @
- (function _my_code(window) {
; |% G. J z& a6 W, e4 t& N5 V0 s - function u(c, n) {..}
; o4 H' F+ T' X, @6 g; S - .. 1 D. b2 L% c9 }$ o$ H5 D: U
- function w() {..}
: ~; z, X: L' S - var F = 0;
( Z' \6 H( y. f k
, J1 y, f* V1 X; g* e) s: R: o- function i() {
# l; a/ @# |) x' Q3 A9 `* s9 ^ - if (!F) {
2 J2 |) \! x; ^9 v/ A% Z* f - F = 1;! q# ]: L1 B$ ^/ W
- w();9 \, A: T6 K" Q; j, L- a8 k% Y. p: D
- if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);. u" s5 x, Y, l0 h2 i+ F) S4 C
- }
" i9 ]& `2 u- P' w0 T* J - }
, P/ @* z6 m l; P - if (window.addEventListener) window.addEventListener("load", i, false);
% Y8 p! U6 ?1 r1 Y: d3 G+ S! R - else window.attachEvent("onload", i);- P O4 n9 u% T5 L4 X% g
- {9 B) y8 Y! j/ N2 H" [) p% `
- }) (this); /* In global scope, "this" is the window object. */. }1 d$ E% D2 x- k% d4 S+ ^2 `, H
复制代码 5 E1 Z3 X9 k: ]1 c% C' c
$ e7 F& y! r1 f# _) E2 W$ R
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。: w% {0 T5 {7 i
7 \! ^+ ^3 w2 z1 t1 m另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|