|
楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑
! l7 Q& y2 g8 c) }) p, _1 e
- u! d" K3 M2 a: t' I
) b6 l6 y3 [# `" p" f已经修改了online demo,加入了对内嵌JavaScript的支持。
% k. v# I. n- v, `8 R: _7 y6 x8 X0 C; }! u1 d3 P9 f* d
关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
' @) ?- F6 B2 M1 U6 {- h& _- q不知道你有没有兴趣一起开发?我想做成这样的2 k# f1 u2 o% W
http://www.hi-pda.com/forum/viewthread.php?tid=1210672
- Q1 H1 E; d, u% N& P" G! ~: V
9 K' z3 O* R9 ~: \) ^: R9 M5 c( d$ }3 F/ l, t b7 r
有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:7 X6 W# F' O4 @5 X0 v4 u
$ c. V9 _9 u j% z: |- (function _my_code(window) {
! _' J5 G6 F& Q; Y - function u(c, n) {..}, J" g0 [3 M4 J5 J
- .. $ q9 o, |# x& _$ Q
- function w() {..}
" d l1 x7 t% w5 D - var F = 0;* q" P {+ P% |5 v8 V* x2 c6 m
% v% `1 [9 o- l) B' y- function i() {1 s! U, a. m4 ~
- if (!F) {
/ @9 U$ I$ G+ t - F = 1;5 g# f7 a8 f% `0 l/ g- G
- w();
& D2 j: M9 b) f! G - if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);! D) D# u& s+ b- j# |( g6 W* J4 ]
- }
9 Y; F; c0 Z2 l# g - } W; Z" @8 c7 Y3 \( Q, C
- if (window.addEventListener) window.addEventListener("load", i, false);
6 o/ w3 S( r; C; s - else window.attachEvent("onload", i);; F/ m% K6 f4 p9 n% K' {2 E
- & G( ?+ q$ x/ i' a0 e8 N# B
- }) (this); /* In global scope, "this" is the window object. *// v) a. I3 } H& d$ w2 B( R1 C6 _
复制代码 8 E% G; a3 B$ d9 t/ s6 v' y
0 s9 l% n" z2 s. p* a4 |
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
/ h$ b {3 M8 y a( K1 h& y5 [' l0 p- m, R& [8 m
另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|