在IE 7 IE8上,Js脚本太慢了

时间:2014-01-17 17:58:19

标签: javascript jquery internet-explorer offset

我创建了一个javascript脚本。这个想法是当用户悬停在产品上时,会出现一个新元素。这是我的剧本:

$('.product-item').hover(function(){
    var offset = $(this).offset();
    $('.product-hover')
        .html("<div class='product-item'>" + $(this).html() + "</div>")
        .css({
           display: 'block',
           left: offset.left,
           top: offset.top,
           width: $(this).width()
        });
});

它在Firefox和Chrome上运行良好。但是在IE7和8上,当我试图悬停时,浏览器停止工作一段时间(大约10秒)。您无法点击.product-hover或其子元素(例如链接和按钮)。

你能告诉我为什么以及如何解决它 非常感谢你

1 个答案:

答案 0 :(得分:0)

这就是我对IE8和IE7的了解,导致了与您刚刚描述的相似的行为:

IE8及早期版本默认设置超时阈值限制设置为5,000,000条语句。

Microsoft发布了一个补丁来解决此问题:http://support.microsoft.com/kb/175500

请注意,微软还会指出哪个是注册表项,以便在必要时将其增加到任何级别:

使用注册表编辑器(如Regedt32.exe),打开此键:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Styles

注意如果样式键不存在,请创建一个名为样式的新键。

在此键下创建一个名为“MaxScriptStatements”的新DWORD值,并将该值设置为所需的脚本语句数。

如果您不确定需要将其设置为哪个值,可以将其设置为DWORD值0xFFFFFFFF以避免出现该对话框。