|
|

楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑
% m& u# y# Q) w! B U0 K' z0 T( H0 D# D# k% U
/ Y! \$ Z# ^! k已经修改了online demo,加入了对内嵌JavaScript的支持。
5 @. D, r8 t/ {9 \3 y3 D# C
I) f2 ?9 Q, q. [; I关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
, x; l# S: O5 `* P) X不知道你有没有兴趣一起开发?我想做成这样的9 L; Q/ C9 d M* y9 T) N, V; p" `
http://www.hi-pda.com/forum/viewthread.php?tid=1210672
: x$ k5 X- E, h , p6 r! [6 `, Q' L& p. D
" ^ D! P' F F0 v% o3 |& e/ T有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
G# _/ P, N8 G2 j5 w# b- - h% v; M/ c: a. x" o: `1 r) x
- (function _my_code(window) {( Z( X# V7 V" h1 j: @4 T
- function u(c, n) {..} K# F( e, P$ {- ~! D# g
- ..
5 Z& P ?4 k. r; v# D& @ - function w() {..}
) l" x( Y4 F4 @3 f9 o* Q - var F = 0;
5 R6 Y5 W e" E9 j) E5 F; o S
% X4 O# {8 V# Z( s( ]4 i- function i() {, A# }5 ^1 d1 q& G( ?- U* r% b5 H
- if (!F) {
" F9 ]1 z M% P$ S: v5 f - F = 1;
7 ^. _+ J9 n o% W: N1 ?2 x7 p1 r - w();& f( \7 b# ~7 J$ r9 ]6 o* ?* R
- if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);
. u& o( i( A; Y0 B7 Z4 b# V! n6 I& E - }5 N8 c' _# t" h7 l) k% m& D1 @( ?( \ {
- }
4 n; a4 ~& }7 {/ b& l - if (window.addEventListener) window.addEventListener("load", i, false);* K1 S5 x, @' g$ L* U1 B4 Q
- else window.attachEvent("onload", i);3 r0 |. \9 z& X* I8 H( J' P
- 2 j: c$ @ a4 s1 {! j. L; i
- }) (this); /* In global scope, "this" is the window object. */& q g$ w( E6 A/ z
复制代码 & I8 ^* K5 l1 z N b: Y; X
4 n; K- V) Y# c- O* l4 k具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。5 N: I+ W4 s; X- _5 w' g' _0 x: i
$ s( V0 a2 ^. K5 C6 v. @5 v另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|