|
楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑
$ p7 n% r8 n/ O' M+ r# q0 ?
7 w/ e$ t2 i! A4 J3 }+ u1 a# i$ E O* v
已经修改了online demo,加入了对内嵌JavaScript的支持。( Z* {+ j0 T3 ^; h7 ?
# [" q4 \, d: ?6 h5 C- z
关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
! L- @2 N6 q- X9 Y5 ]) |( `不知道你有没有兴趣一起开发?我想做成这样的7 N/ B. ?8 i+ t& t5 _
http://www.hi-pda.com/forum/viewthread.php?tid=1210672 ^7 p- F# Q! s& ~* y m4 @+ q
- ~+ ^6 b8 e4 v: U4 g, I4 `7 U" v( A R+ t) y* c; t) c1 D
有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:4 C2 h; W. M) E5 D( o5 R
- ; [2 V7 _" Y. y$ U" k
- (function _my_code(window) {2 Z. c: _6 p% }1 u4 m
- function u(c, n) {..}
$ W/ ~, e9 {1 i7 z4 B$ ?3 U - .. 0 i r8 ^# P0 H* y- B( u0 o! ~ R
- function w() {..}
1 ]0 n5 ^/ o7 v! \ - var F = 0;
. x4 M [) z1 y, i5 | V* D6 h2 r - : [5 g9 f* c5 D/ ]+ \
- function i() {
, q0 T9 N6 g9 j8 @. D, b& v: @* _ - if (!F) {
|8 K) f5 D2 E9 Z - F = 1;
$ W' R% q( ?( o - w();
k, w b- |! ?. e6 j$ | - if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
7 ]. M9 N6 V+ ? - }- X" h8 u( _* T! h
- }
2 s) ~% n8 z4 h7 h( }- Z6 L - if (window.addEventListener) window.addEventListener("load", i, false);8 F0 C7 c. @! A$ c/ w2 q; j8 x
- else window.attachEvent("onload", i);
! p8 X1 R2 f5 i - 2 l" m/ N, ?% }7 [9 s
- }) (this); /* In global scope, "this" is the window object. */
9 v- L0 W/ V: [8 L: o( r( `
复制代码 * Q. w. R! n0 @$ W& {
. V5 I) L, \; Y( }$ x
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
2 V3 p: h3 G) t) h4 z- X! G8 k$ X4 D6 q
另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|