|
楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑 + }& b. K5 R+ p ~; ~
2 [- c+ M) A7 V* M H9 M- J9 P/ x8 L
5 R( m, L; e( Q% @已经修改了online demo,加入了对内嵌JavaScript的支持。6 u# N# Z, T, q. `& f8 N
+ Q1 Q$ }- N# n: O4 T0 \& x
关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。$ A( C; i/ d2 n$ u0 K5 e0 W
不知道你有没有兴趣一起开发?我想做成这样的
( w! C( O" k1 _& C' C6 Q0 ]http://www.hi-pda.com/forum/viewthread.php?tid=1210672# K* w9 Q4 N1 C/ K; p1 f
" k6 V) V. |# ~: K/ {4 {
( ~* X, E, @* [* B7 u9 _
有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
" C' |% J+ b0 I o/ S- ) T) ]* r4 I [2 b
- (function _my_code(window) {! ]9 M/ s2 J$ |) A2 X( y2 a
- function u(c, n) {..}# }" [# r. M( Q% v& P
- ..
. f( G' ?+ s; d. l3 Q$ H) a - function w() {..}" b4 L$ d$ m2 m; l
- var F = 0;
2 t, ^6 C$ |1 u6 r) R. d - ( a; ]# R2 ]2 ` s
- function i() {1 S& u) |( u/ V4 X0 ?) c |
- if (!F) {+ u* p8 [& r. C; s; p
- F = 1;2 z6 D# z. P$ @9 }* m6 }4 k5 b
- w();# D: l6 [% ~7 M& t% j5 \3 m
- if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
* y+ _. i# N) M8 v/ N* d& S: L- y - }
! G1 n; O2 q& l - }
/ T3 L( i6 O0 @5 C - if (window.addEventListener) window.addEventListener("load", i, false); r& K8 l3 i# v2 J! i
- else window.attachEvent("onload", i);6 h% ]9 J' d! H) B5 M
- ) c P" G2 L- x& E
- }) (this); /* In global scope, "this" is the window object. */" J9 u) X. \) U) v2 _
复制代码 5 @" P+ w( R* |/ _" q2 u, w
8 n7 ]! `3 b+ X1 w/ p
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
) P( a2 x/ X+ L1 j: Q! V' L
) V- b4 c) ^9 ? N, B: D7 F4 _另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|