|

楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑
4 \/ V n0 b9 G- j$ c
7 U$ N/ A" R, ~" o
9 B. f( |* I" H5 X% g/ D' N已经修改了online demo,加入了对内嵌JavaScript的支持。- o$ ~& T- n8 ]% ]/ u
! J$ Y3 \7 |+ z5 n8 \2 T/ o8 J/ L/ ^关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。. b6 ~5 t3 @; S7 G2 e" v, W
不知道你有没有兴趣一起开发?我想做成这样的
; J2 N; I0 I7 g$ ?! A. Y1 Rhttp://www.hi-pda.com/forum/viewthread.php?tid=1210672
- v* Z# L: A7 x# H' G; r# I" l* A 8 I8 j* v% X7 D, F- g8 ~' Q
" T8 @7 Q% C( T
有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:8 }% Z! @$ @- f3 f" R/ l0 I
- & S, J, I# W/ m- h" z
- (function _my_code(window) {
9 g0 c1 v& |- ]' D% z) b4 T( G - function u(c, n) {..}# {4 {& x& s& ~. _2 o1 K
- ..
/ j1 e- F7 \$ }9 w) q% ^ - function w() {..}
8 n! W( z! \8 X" D. l% r - var F = 0;
! A0 @& R! g3 B: u' s4 R b1 I
0 B( G+ @# t* Z; P; N- function i() {
" p4 I/ r. B3 w: q/ s - if (!F) {( x5 C0 X" t2 Y
- F = 1;
) k: e9 s" K/ ~ - w();
% z* t, m1 }% u - if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);& a$ G, `# D' U; T2 l0 D4 o9 E8 ^
- }9 }5 Y0 ^6 `+ E; s+ v6 V# M4 @# O+ u
- }
v7 @ y, F0 Z: a - if (window.addEventListener) window.addEventListener("load", i, false);( T- h9 U6 w5 p/ \
- else window.attachEvent("onload", i);1 n" l; V. _/ L, B n: v# {
-
2 Q ]7 d' ]9 E1 t! k9 ]- @ - }) (this); /* In global scope, "this" is the window object. */
5 q; p) r. y# P2 Q5 i( Z" u
复制代码
0 R [# w" K0 J8 k+ B# c; b6 _9 T) Z( `
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
( v! R: e1 N# \. r- M
" x& S# R4 |8 P! I7 ?' B1 A* K8 ~" G另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|