|
楼主 |
发表于 2015-9-4 13:30:21
|
显示全部楼层
本帖最后由 fengdh 于 2015-9-4 16:32 编辑
$ m0 @& P! n- {: E! }* ~: T& x& L( [ w' Y
r/ ]* C% B& {2 \; d7 N
已经修改了online demo,加入了对内嵌JavaScript的支持。
3 O/ a5 e) J* c& M4 d5 e
% V) Y; L& D; S( a. K- X关于插件,联系过ChaZD插件的作者,看他能不能加上对MDict的支持。
/ `- f( K. p& _% b5 c! X: G不知道你有没有兴趣一起开发?我想做成这样的: E( I/ m+ m! u1 |
http://www.hi-pda.com/forum/viewthread.php?tid=1210672
7 H5 | d8 O( M; N$ t' J) M! \: C) y4 _
1 p3 b5 ?8 D/ O) | Y6 ^有一点建议,内嵌JavaScript(l.js)中直接用了很多全局变量/函数,对于模块化来说不是很好。建议用匿名函数即刻调用的形式来尽量避免污染全局空间。比如:
, S5 G3 V! m4 Z% l( u* O- _, B
4 y8 Y5 F, w- M' i. U$ C- (function _my_code(window) {
, D# {" [2 v% D6 b9 D - function u(c, n) {..}: d8 b" O( [: O, t$ U
- ..
n7 u+ d; V* j! [ - function w() {..}
9 B( x) X4 Q% g8 ~: `5 x - var F = 0;
( h6 k" h; \$ p. {7 I
) C: d" N+ a# v5 a% q* k- function i() {
p# ]+ x7 Z5 w. i* H - if (!F) {
* L. H& ~& L- ]' S" r+ J - F = 1;
6 ?; E5 k" l( D: n7 d - w();4 C/ n# | l" [) r
- if (!window.ActiveXObject && window.addEventListener) window.addEventListener("resize", w, false);; V+ P' ^! c7 B5 G2 T7 \! ~
- }( g* e1 u z8 V- G
- }
0 C2 O, c9 K, \ U, q$ Z9 k7 ~ U - if (window.addEventListener) window.addEventListener("load", i, false);- G, M, T" S& o, j; f; Q5 I8 K# J
- else window.attachEvent("onload", i);. Y, ]4 {% Z& L: [4 u) j/ e9 l" G) A
-
+ Y5 d( ^7 U% k U$ F - }) (this); /* In global scope, "this" is the window object. */
+ k" C7 i8 S5 D3 \8 r, _
复制代码
7 I9 a4 _- m9 a' \* _
$ A8 ]* o5 M9 ~5 J具体到你提供的 l.js, 只在window的onload事件中调用resize处理,以显示选中(或初始A)字母开头的单词项。而在我实现的查词界面只会部分更新单词定义的内容,不会每次重载页面以立即显示A开头的单词列表。无奈我之好延迟发送resize事件。不知道你可否修改的更好一点。
3 W3 v: B0 {# x
7 K0 c3 {. ~" A% q8 A另外,现在JavaScript一般不用 with 语句以免降低程序性能。而大多数浏览器除了 document.getElementByTagName() 之外,还提供了 querySelectorAll()和 querySelector(),使用CSS同样的语法更容易选中特定HTML元素。 |
|