|
楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑 6 [7 P9 L9 }7 P9 ^+ @# Y8 P
5 ~" J, m% d: Q1 Q1 q3 b1 W2 }5 X3 h! y
已经修改了online demo,加入了对内嵌JavaScript的支持。
$ Z) S( p O7 I. X8 ]1 I$ b9 O
2 O W' X B* }关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
6 @( a' I; K9 q+ G/ v不知道你有没有兴趣一起开发?我想做成这样的
, @1 B( T7 E4 P8 l% f, n* chttp://www.hi-pda.com/forum/viewthread.php?tid=1210672" L" R; {: H# K* v, [, p+ X
! o* k5 c8 x# f4 F6 V# e
3 s7 p- q+ R9 ^) w* [+ Y4 [有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:' m( o# d. X' n" I. t" v* I
- ! _$ M3 i4 E* P
- (function _my_code(window) {
8 B9 {9 x6 x& q" q5 C+ ]. L3 v - function u(c, n) {..}
' w; e( d/ f4 t2 O6 R - .. . K" J$ o" S* v- v* y# Y. b
- function w() {..}5 j7 M! O* ]2 [6 \- d
- var F = 0;
; I9 `/ P. P- Z) }4 D+ ^
, \4 c6 x( S; a0 M* y( `- function i() {
& z k( b* O& \# U$ ]! { - if (!F) {' d7 T% b/ V `- ?/ r- i {
- F = 1;
5 [6 F k) O4 P- S) X" t9 `- w" K - w();+ c: l" V& D- \( ]' }- U
- if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
) J% B6 U* z: l - }
q- o4 M8 u" i6 [, _* B - }
/ Q" E( W, E) M1 @ - if (window.addEventListener) window.addEventListener("load", i, false);
' K& w: p* K8 G' M- C6 I6 Z - else window.attachEvent("onload", i);
5 K" _2 D; V, [: [ - / U% O% B( i* P2 f- t( J# {+ Z
- }) (this); /* In global scope, "this" is the window object. */
* }. Z j% M4 h1 W6 X
复制代码
* ?0 @' L4 I4 D/ G/ q4 s5 E; B+ Y' [! b* F b+ f8 B' }$ N5 n
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。; ]. K, p% }/ ]& }9 z1 X2 G
. v5 g( F7 O9 e: p' i0 g3 M, Q* S! u另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|