|

楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑 1 z) y" l" N9 c( b# E* g& X, W
+ ]6 \ K3 r4 b& O) l& G! M ~: m
5 l2 H4 D& ^1 t2 @! A G# R已经修改了online demo,加入了对内嵌JavaScript的支持。
5 O- t( b2 _. I4 {; A
+ Q( r7 S# Y. L关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
6 b4 G, l t: `8 Y4 C不知道你有没有兴趣一起开发?我想做成这样的
& s2 g0 U$ E4 shttp://www.hi-pda.com/forum/viewthread.php?tid=1210672
; e) m% {2 a6 Q. a ; w8 y$ j& l; F* A
c' w- @+ e7 e U6 u- @有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
3 \! p" @: i% n' G3 b2 r% D
v" |1 x) m6 s. w0 C3 z4 T- (function _my_code(window) {" U5 f) v' N7 E' j6 F2 `3 B
- function u(c, n) {..}6 w' Y5 U. ^, n$ Y4 `
- .. ; |: O1 N7 M& f0 ]6 D
- function w() {..}6 _8 p# ]& H [9 J( J p' U0 B
- var F = 0;
! |5 [* d( x8 c9 { - - c: x8 W( Z9 x- a# n
- function i() {
0 E, e$ R& H8 Q2 \* t - if (!F) {" X/ c* j( Z% u+ j# M
- F = 1;# Z5 S; F! U+ N1 s
- w();* U K1 A: Q. d5 \( q, b
- if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);. b9 Y$ u7 l/ b3 M8 `; U ~2 w
- }
_1 T* W; q, L3 ^! P6 ] - }8 [6 j0 K! k: H, E% T! b" A8 B
- if (window.addEventListener) window.addEventListener("load", i, false);. a; a( P! k8 h$ ^3 `9 g
- else window.attachEvent("onload", i);0 K$ r: u. D" E# x
-
$ ~$ \2 f7 f! M- f* I& q - }) (this); /* In global scope, "this" is the window object. */- t8 c( i+ g$ l' H C
复制代码 0 K7 w; A! c8 G& X1 q
% K4 H! b. l# \! H
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
" B# e: W1 z- W( T! d; `& f2 ]! Z* S9 s: Q' s7 F
另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|