某些Javascript在64位Internet Explorer中运行不正常
编辑:Juan Mendez的解决方案修复了这个特殊问题,但没有解释为什么在同一个浏览器上使用32位而不是64位。这让我想知道还有什么其他类似的问题可能存在,以及如何采取预防措施。。。原来的问题是:某些Javascript在64位Internet Explorer中运行不正常,javascript,jquery,internet-explorer,x86,64-bit,Javascript,Jquery,Internet Explorer,X86,64 Bit,编辑:Juan Mendez的解决方案修复了这个特殊问题,但没有解释为什么在同一个浏览器上使用32位而不是64位。这让我想知道还有什么其他类似的问题可能存在,以及如何采取预防措施。。。原来的问题是: 我在两台Windows7机器上安装了IE9,一台32位,另一台64位。所有IE选项/安全设置都相同 在32位计算机上,以下网站显示正确。请注意,页面中间滚动的社交媒体图标正在移动,向左滚动: 在64位机器上,由于图标不移动,脚本似乎没有运行。页面上的其他脚本运行正常(例如,页眉有一些javasc
我在两台Windows7机器上安装了IE9,一台32位,另一台64位。所有IE选项/安全设置都相同 在32位计算机上,以下网站显示正确。请注意,页面中间滚动的社交媒体图标正在移动,向左滚动: 在64位机器上,由于图标不移动,脚本似乎没有运行。页面上的其他脚本运行正常(例如,页眉有一些javascript控制要显示的图像) 下面是使图标移动的代码,但我担心这是一个更大(不太具体)的问题:
$(文档).ready(函数(){
设置间隔(滚动图标,40);
});
函数滚动图标(){
变量i、thisPos、newPosLeft;
对于(i=0;i
有人知道问题是什么吗?关于64位与32位的假设,我错了吗?对我来说,这似乎是两台机器之间的唯一区别。当我在IE 8 64位上运行您的页面时,我得到以下错误:
// Object doesn't support this property or method
divs = document.getElementsByClassName('icon_socialmedia');
请改用
jQuery
,因为您已经在其他地方使用了您是否看到任何错误消息?请从setTimeout
调用中删除难看的eval ish字符串,并将函数引用放在那里。您最好使用setInterval
setInterval(“滚动图标()”,40)代码>-->setInterval(滚动图标,40)
是Oleg建议的,我不同意使用setInterval
。如果处理程序的时间长于间隔(或者其他事件处理的时间长于间隔),则这可能是性能问题的根源。通过自己调用下一个动画帧,可以避免该问题。制作动画的最佳方法是使用requestAnimationFrame
我不会这样更新“样式”:$(iconButtons[I]).css('left',newPosLeft+'px')代码>是正确的方法。我将该行更改为divs=$(“.icon\u socialmedia”);它是有效的。然而,这对我来说仍然很麻烦,因为对于完全相同的浏览器,它在32位上工作得很好,而不是64位。我不知道还有什么会受到影响…@DougieBear我不会太担心的。您使用的是一个较新的API,它没有得到广泛的支持,这就是jQuery
等的用途。
// Object doesn't support this property or method
divs = document.getElementsByClassName('icon_socialmedia');