|
楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑 0 ~) C# y, B9 h0 F4 e, y1 ]
$ @- Q5 n% ` x) t9 U
9 S6 q# _7 {; [2 F5 }8 B已经修改了online demo,加入了对内嵌JavaScript的支持。
6 ]8 {1 ~6 E$ s6 I5 f2 f/ F8 p. j, o0 s
关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。: i$ q# s; a, ?/ H
不知道你有没有兴趣一起开发?我想做成这样的
3 I0 ~ v9 M9 L# J; `http://www.hi-pda.com/forum/viewthread.php?tid=12106722 V e8 T7 Q8 I) T* { F$ i
7 h7 W8 A/ S; G/ R$ R3 |
: |% ]4 I) Z- k有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
- m [3 b/ j; g9 m* W Q, Q) h5 u- - c& M: h8 l9 t3 a* M D
- (function _my_code(window) {
* X- m$ z; K' c8 n, | - function u(c, n) {..}! i$ Q- E |. { u0 B
- .. * ^+ R+ [# A3 S+ t
- function w() {..}; r' i# X$ r# W* W
- var F = 0;4 l8 f! a# [' f1 ~2 n
4 H0 c u7 M* x% R: ~- function i() {: l6 U' v1 x5 \+ u
- if (!F) {1 ~- ]3 m- ^" {& `( `- Q" [
- F = 1;
# ~, C1 R% C( D5 Q( Y. R. u - w();
1 k! G$ a S) \ n; a - if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);7 r" A, L' A" h$ W
- }5 ?, A( V* L! {0 T
- }, U6 v! b8 p- u3 Y
- if (window.addEventListener) window.addEventListener("load", i, false);( r+ [$ D" G/ M9 e9 {
- else window.attachEvent("onload", i);. C; L: m/ g* l; s7 a8 O. |1 ]/ h5 {* h
-
2 |& S. \: H9 j5 k3 Q - }) (this); /* In global scope, "this" is the window object. *// n7 d1 I, ]: p: f) p
复制代码
9 `6 `& `6 t3 u" @0 {5 H h4 A2 c5 X, |$ N
具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。: `7 m" p# q! X% o& v* _1 k
+ T0 V5 F) w2 W) u2 M2 L另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|