|

楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑
3 O7 K7 o3 E6 E6 h4 i& G
/ r1 o: v8 E8 i- S- E j [2 e& | E3 f$ B/ L. z7 ^
已经修改了online demo,加入了对内嵌JavaScript的支持。! z. j' Z }4 Z& V; b- @
' Q- T; J& b; N
关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
) K0 a+ {! S* Y8 t# w( k$ e) U不知道你有没有兴趣一起开发?我想做成这样的& K4 H+ _9 ]0 t8 @' \3 i s
http://www.hi-pda.com/forum/viewthread.php?tid=1210672, x9 K4 K+ A1 a1 R/ [

" o( B; f9 v; Q ^. {! B! U! I0 N/ W7 b( Y% N+ d7 B
有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
% D; X( g% f) | M C
- G( s4 a/ p1 v5 {2 v% W8 h" |% D7 e- (function _my_code(window) {
/ x" A! q. }: b! `* D/ u& L ` - function u(c, n) {..}4 o R* L8 v/ v# `/ E. g
- ..
% p- D, S$ t2 S' S7 H - function w() {..}
7 t& u1 ]' x: c - var F = 0;
: J' b+ e, Z2 v3 W1 h3 `4 I - ) Z' X2 B+ j6 ^4 o
- function i() {* F1 d+ B* Z- Z5 @+ J! }9 c
- if (!F) {
( ?5 W8 C" C; _1 ]1 v - F = 1;/ ^* x4 U7 l) P O
- w();
. O1 L x6 z; b$ ^8 ~ - if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
) p3 ~& U/ \) N/ b4 b { - }
; Z% H; Y! M% S' K. ? - }9 X9 x w7 ^- d; D6 {, {
- if (window.addEventListener) window.addEventListener("load", i, false);# n* A, g- H8 J# R% C5 c2 G$ t
- else window.attachEvent("onload", i);+ t0 o; A- D- J3 j9 Q z
-
% O6 d+ }6 c/ S4 G - }) (this); /* In global scope, "this" is the window object. */7 h% u: Z; g+ i
复制代码
! D! Z: I! _& c. E* E4 c, }: s5 U& ]
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。2 r1 t2 E! J( y9 v- V
1 h/ b& t z- R1 ]! `
另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|