|
楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑
3 `$ k! w7 @. ~ I) u
( C( ?7 f$ |* c v' I4 y$ D: Z
& R, e' g3 z" [1 t& A5 ]: R已经修改了online demo,加入了对内嵌JavaScript的支持。1 k1 m" f) W% r4 N% g6 h' h
8 Y/ P7 h# E; {" [# Y4 R
关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
2 X" ~; _% _ ~0 N不知道你有没有兴趣一起开发?我想做成这样的
e& R2 y2 B+ m% L# V/ Ehttp://www.hi-pda.com/forum/viewthread.php?tid=1210672
, H }: m2 E2 c2 c) K8 r- K$ ~! f; e3 h3 _9 X
/ W: B9 t0 d: l( ^
有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
1 @. A! g: A2 D- J9 O
5 v, G4 M0 d+ C+ o" l' `4 M& b, R- \- (function _my_code(window) {3 v, U+ v, Y4 v, N
- function u(c, n) {..}
. K g! E5 R& n5 {* M - .. 4 j$ N4 C! x' m9 B2 s, k
- function w() {..}9 E$ ?1 |; @/ y7 s' Y' ^
- var F = 0;
5 D" s! ^& L( j3 ~
8 {8 u3 a( v7 z- function i() {
* p. E% h- K+ w - if (!F) {
& n2 g2 t- }- h1 r. ]8 X4 [ - F = 1;
7 [# T5 X; c& q" o, M - w();' R+ \8 D, V1 ] {
- if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);7 H* T& i( Z: }" ?
- }
( r) N" n+ x; O' N+ w( Z - }/ p9 {5 \" c; L
- if (window.addEventListener) window.addEventListener("load", i, false);, l- k$ t% r' i$ @9 J8 n
- else window.attachEvent("onload", i);( l9 n5 X, O- {
- # g t1 v [$ f8 j; U3 w( x
- }) (this); /* In global scope, "this" is the window object. */
; ^6 L. r/ U5 F. {5 a9 @. Z0 Y
复制代码
4 |* e: j4 `! l6 O9 H1 w, R4 E6 T0 A; y; E8 z$ _, b! z
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
" p( }# \! y- J# \9 C8 p- N, D% N. z2 ?. z
另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|