欧路Windows版执行JS两次?
我的JS程序在每个词头内容的尾部引入一次,但是整个JS会被欧路执行两次!我确信这样是因为,我在JS第一行加了一个alert语句结果弹出窗口两次。但这个JS下在GOLDENDICT下执行很好没有重复执行的问题。这可能是什么问题呢?我已经检查过MDX中没有两个词头是完全相同的。是原生JS没有用JQUERY库。
欧路表现总是很怪异,在标准WINDOWS浏览器和GOLDENDICT下正常的往往在欧路这里就不正常。没办法调试,只能当黑盒看外特性,调试相当艰难。
哪个WINDOWS下的浏览器是接近欧路的可以作为替代调试的? 有可能是@@@LINK导致同时加载了两个词条的内容,你试试多查几个词,看看是不是都这样
不管原因是啥,解决办法还是有的,用全局变量,第一次变量为FALSE执行代码,并将变量变为TRUE,后面判断为TRUE就不执行了 simonfire 发表于 2021-5-25 22:19
有可能是@@@LINK导致同时加载了两个词条的内容,你试试多查几个词,看看是不是都这样
不管原因是啥,解决 ...
经查与@@@LINK无关。的确没有两个相同的词头。
你说的全局变量作标记的方法我早就想到过,根本没有用。它死活就是要执行两遍。
最后用一个简单方法解决了:将整个程序放在 window.onload = function() {} 中。
但看不出来为什么这样瞎猫碰上死老鼠就可以解决,因为理论上说alert语句和dom树是否解析完是没有关系的。不管你这个alert语句何时真正执行,是在DOM解析之前之中还是之后,总归应该只执行一次吧,为什么要执行两次呢?!
实际完整的JS程序有几千行,alert测试语句放在最前面。我惊奇地发现如果JS程序短一些就不会出现alert执行两次的怪现象,即使不将整个程序放在 window.onload = function() {} 中也只执行一次无误。
只能说这个欧路是BUG多多了,欧路还有很多CSS渲染的怪异。这个词典软件在我的使用中唯一的优势就是同时打开多部词库时渲染快很多,否则我就只用GoldenDict了。
页:
[1]