|
楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑 6 ]- G7 F% c$ v1 O( I
3 l, w5 E" M% H* f/ f2 t* S! s$ s4 z8 A+ }
已经修改了online demo,加入了对内嵌JavaScript的支持。
" o3 e- L' h" ?; F/ R+ s+ p: J1 e- u* V
关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。* g3 W# f1 a/ Q) E$ y% P
不知道你有没有兴趣一起开发?我想做成这样的
" }; q8 O+ C# Z( Rhttp://www.hi-pda.com/forum/viewthread.php?tid=1210672
) E( W5 E) o- H: m! `; j3 ~2 R g' C3 i0 S, U( H- w" d
, _8 }% S& x, `& p& L2 t7 l有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:! q2 f( m: d$ V7 V/ i: c7 |/ h
* j$ B! k! v) ~: \- (function _my_code(window) {
8 O+ }& z) k/ w6 A" E& C, C - function u(c, n) {..}
7 ]* w& {- j6 D) Y' K3 ~2 k/ h - ..
8 R. J2 c4 M [: F' @6 u+ b - function w() {..} l# ~! Z* C2 m. C& j$ }4 h
- var F = 0;
, M; ^7 o' x' N8 g3 q
& Q) P& e. G; z" `9 h# w- function i() {
, s2 {) x |- X' m! a) n - if (!F) {
( B8 {4 R1 e+ \7 v4 a; o3 f - F = 1;4 Y# [9 W2 O0 G3 j
- w();: I% a' U7 ~' ]' }
- if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
$ j- M2 K$ U, f# [ v - }
+ ]& r4 {, _" A; L, Y i& w4 m n - }
" F0 p+ h; N2 B0 C! t9 A* A - if (window.addEventListener) window.addEventListener("load", i, false);
. x) g# B$ c2 }& ~0 l4 [* o: N - else window.attachEvent("onload", i);7 {" G6 ]% C2 w" X q6 A
- / ]% X" I0 |1 L
- }) (this); /* In global scope, "this" is the window object. */- [6 J5 g- X$ v# N% a y
复制代码 ) m7 Y6 e$ l3 Y' L' r
# \- ?, Q9 A6 X; t$ P& l; ^' A
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
0 u$ ?6 e+ i7 _3 N% G% R% ^* Q7 O+ M( ?5 Q- r
另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|