|
|

楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑 " C0 N- p& J0 j, Q. ^8 i
0 R/ V5 F' g- }* ^* X/ x" S% o
. A: g5 t9 O! d! n/ y& s) z
已经修改了online demo,加入了对内嵌JavaScript的支持。
1 I3 D! R/ p+ ~+ W! G
4 z. q6 m0 I. m/ F关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。( w8 i' c* ?4 a F" u/ ?! Y2 X
不知道你有没有兴趣一起开发?我想做成这样的
3 |2 s: E9 d% q& Whttp://www.hi-pda.com/forum/viewthread.php?tid=12106727 \+ Q: J+ u9 ?1 y5 I" c1 I
* `$ K( |+ @- M& u1 @
0 T) p6 G' O* b ]( a' ?
有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:9 `6 b. `# O7 P/ E2 Z1 j* M
- / F' i' o0 @& I
- (function _my_code(window) {4 m* o; B8 [* V+ r! X. ^
- function u(c, n) {..}
5 [6 ?9 q& g- b$ Z% Q - ..
' g/ }& m. B$ b! w4 G - function w() {..}5 j& a5 Y- _7 c& _& ^7 y
- var F = 0;0 e) x% D4 f. I6 ]4 M! H
- ( ?9 y1 y1 r7 H x4 c
- function i() {
* f y5 [, t9 O* ~ - if (!F) {
! f+ \+ E: h1 p! T% w. L9 } - F = 1;4 o" L4 J5 X, t! D4 e- e
- w();
- E g( }3 Q, B6 C3 N- { - if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
8 a7 E$ ?7 B1 y7 I; a - }
2 R) p' s: y. y2 L, A( g. s - }* I0 r, v5 |: [" H% f* g' H% N
- if (window.addEventListener) window.addEventListener("load", i, false);6 k# n. @% N% z0 M" r j5 Y
- else window.attachEvent("onload", i);; l( c+ J8 Z% d
-
/ l2 u1 s8 {6 U8 v& {) z - }) (this); /* In global scope, "this" is the window object. */1 c1 i1 V! E) o
复制代码 " e" k) J+ J ~, ?0 a* g. [, q/ p
/ C: [% t5 v; i0 O# |/ S6 N, J
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。+ m& `3 _( n5 h* N
/ k# S+ K- U7 h& |6 g0 b另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|