|
楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑
E, T2 n0 P% u/ T! `
' s( N" n5 }: a$ b" c7 j& Z
0 ~/ `, x* r0 B, u" `/ z$ p已经修改了online demo,加入了对内嵌JavaScript的支持。
) C3 }" p. M7 o: s
$ o, z' p" r, l% o/ s! Z1 b关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
, Y5 X t. N* q2 g不知道你有没有兴趣一起开发?我想做成这样的
! _# k' F6 T4 nhttp://www.hi-pda.com/forum/viewthread.php?tid=1210672
3 R3 F- _2 l% r- [5 W- I9 e6 a) r, l: |9 v9 u# `- [
) U' C/ s" v* @% o' y有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
4 O; j9 p& B4 d1 v A$ J
& O1 C' C6 N6 y$ j* ~) l9 a- (function _my_code(window) {1 V8 O+ e) L9 k5 V J
- function u(c, n) {..}+ \7 P1 f T9 N, A: w2 H9 ^6 @
- ..
7 h, ]' \; s9 Z/ O/ E% W A - function w() {..} q6 M$ S& [6 M% i
- var F = 0;+ F c& N e! b" b2 b0 l& h
* u4 t' ?9 I8 H, Q- function i() {
0 v2 H; G8 Q3 |% H U9 b- U - if (!F) {
+ }7 Z' T& m/ Y5 M" m" M. O9 c! j0 h - F = 1;
+ i6 k% |& O' _4 h, T9 F) y" t. f - w();" r. Z1 o& o7 o
- if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);, u) K$ S3 o. E$ `' x$ D X# O7 ~
- }
% Q1 G, D0 U: r9 {$ \- Y1 G: M+ f - }- a) |, I3 q& h. j* ]
- if (window.addEventListener) window.addEventListener("load", i, false);2 f7 h* b l0 m6 P
- else window.attachEvent("onload", i);
! F" N( f7 E/ G2 S$ s/ N - 9 h! U. r) H1 C) @4 D* ?' H; \7 R
- }) (this); /* In global scope, "this" is the window object. */
. N# f$ T5 j! n$ V9 q4 {
复制代码
# }( ?7 u( M. ]" e3 K: C6 a
) J4 T# b: F" h9 W1 O( K具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
9 K; \ y8 X) U7 T0 Z* F9 u' T% E( M$ z7 u/ `# d2 J& j E8 w
另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|