TA的每日心情 | 擦汗 2020-7-3 13:51 |
|---|
签到天数: 19 天 [LV.4]偶尔看看III
|

楼主 |
发表于 2021-5-28 16:04:35
|
显示全部楼层
simonfire 发表于 2021-5-25 22:19
G. O# \. P; a0 P有可能是@@@LINK导致同时加载了两个词条的内容,你试试多查几个词,看看是不是都这样
* J3 o/ s, y V9 A' `7 H- k1 w) S( ^$ i/ x9 \2 B7 Y5 n
不管原因是啥,解决 ... ) o+ {/ r4 s! P. a
经查与@@@LINK无关。的确没有两个相同的词头。, H6 X& T* v \. a W Z" I4 V. H" o1 q, u
你说的全局变量作标记的方法我早就想到过,根本没有用。它死活就是要执行两遍。) f2 a' K& p1 l% c: ] |/ I
* [% V q4 S6 Y* n6 T: f0 {0 {+ N
最后用一个简单方法解决了:将整个程序放在 window.onload = function() {} 中。( m# r4 ^/ M. _. a( q& L6 `$ ?
# x; J& i% z% A但看不出来为什么这样瞎猫碰上死老鼠就可以解决,因为理论上说alert语句和dom树是否解析完是没有关系的。不管你这个alert语句何时真正执行,是在DOM解析之前之中还是之后,总归应该只执行一次吧,为什么要执行两次呢?!
' b: V7 ~/ o0 F2 K" d( m' Y' U& Z0 t+ E7 H0 k
- \3 u: k5 d9 ?. W2 v; t2 {5 ^# ?实际完整的JS程序有几千行,alert测试语句放在最前面。我惊奇地发现如果JS程序短一些就不会出现alert执行两次的怪现象,即使不将整个程序放在 window.onload = function() {} 中也只执行一次无误。
6 T2 {) R3 Q% y
" ?9 [' k; X$ Z2 `8 B" K, M @; I7 m6 P
只能说这个欧路是BUG多多了,欧路还有很多CSS渲染的怪异。这个词典软件在我的使用中唯一的优势就是同时打开多部词库时渲染快很多,否则我就只用GoldenDict了。+ Y) c% q) u r
|
|