Javascript 为什么HTML会使IE崩溃?
我有一个导致IE8崩溃的页面。我已经把它简化为导致崩溃的html/javascript。 我知道我将不得不做一些不同的事情,在IE中以我想要的方式显示页面而不破坏它。是否有人知道我可以向IE团队报告这一情况以修复它的方法 当鼠标悬停在跨度上时,会发生碰撞。创建一个scratch.html文件进行测试。使用JSFIDLE不会使其崩溃 更新:确保IE未处于兼容模式以使其崩溃。 更新2:它也会在安全模式下崩溃,因此它不是导致问题的附加组件。我已经在多台电脑上试过了Javascript 为什么HTML会使IE崩溃?,javascript,html,internet-explorer,internet-explorer-8,crash,Javascript,Html,Internet Explorer,Internet Explorer 8,Crash,我有一个导致IE8崩溃的页面。我已经把它简化为导致崩溃的html/javascript。 我知道我将不得不做一些不同的事情,在IE中以我想要的方式显示页面而不破坏它。是否有人知道我可以向IE团队报告这一情况以修复它的方法 当鼠标悬停在跨度上时,会发生碰撞。创建一个scratch.html文件进行测试。使用JSFIDLE不会使其崩溃 更新:确保IE未处于兼容模式以使其崩溃。 更新2:它也会在安全模式下崩溃,因此它不是导致问题的附加组件。我已经在多台电脑上试过了 <!DOCTYPE html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>test</title>
<style type="text/css">
.condPartHover
{
border-color: #000000;
background-color: #E5F0F9;
color: #1D5987;
}
</style>
</head>
<body>
<ul>
<li>
<div>Testing:
<div style="position:relative; display:inline-block; height:25px;">
<span style="position:absolute; top:0px; left:0px; border:1px solid #000000; background-color:White;" onmouseover="this.className = 'condPartHover';">test
</span>
</div>
</div>
</li>
</ul>
</body>
</html>
测试
.康帕托
{
边框颜色:#000000;
背景色:#E5F0F9;
颜色:#1D5987;
}
-
测试:
测试
尝试使用mouseOver或带有jQuery的mouseEnter
$('span').mouseover(function() {
$('span').addClass("condPartHover");
});
此外,您使用的此方法不再是HTML有效的。您的doctype不正确,您处于怪癖模式。如果必须使用xhtml doctype,请使用此文档:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
是否有人知道我可以向IE团队报告这一情况以获得
修好了吗
是的,转到,在搜索框中输入“Internet Explorer反馈程序”,它将为您提供一个链接,向IE团队报告类似的错误。他们确实在阅读/采取行动,但不要期望任何快速的行动。不过,我不知道旧版IE中的一个bug是否值得修复。这可能只是目前仍应用于IE8的安全修补程序,而不是任何会改变HTML呈现或Javascript行为的修补程序。对我来说,它不会崩溃。试试我的IE8不会在这个html上崩溃。前两条评论是无关的,没有建设性的。@xbrady,你能在吗?@Martin。在…上创建一个html文件,用本文中的文件填充,然后在IE8上打开它,浏览器就会挂断。奇怪的是:P@Rob这是因为您将其作为独立的
.html
文件运行,它将阻止任何JavaScript代码。要澄清的是,问题是“如何修复此问题?”还是“如何向Microsoft报告此错误”?如果您只是在寻找修复,为什么还要使用脚本呢?只需使用:hover
我以前使用过jquery hover函数。我只是把它剥离到崩溃的地方,比如:$('span').hover(函数(){$(this.addClass('condPartHover');},函数(){$(this.removeClass('condPartHover');}//仍然崩溃IE);触发崩溃的是类名更新。addClass更新导致其崩溃的className属性。strict
和transitional
doctype之间有明显的区别,不应忽视。@zzzzBov-是,但他的也不是有效的xhtml transitional类型。新网页不需要过渡,应该始终严格使用。我完全不同意。许多常见属性和值在transitional
中是可接受的,而在strict
中是不可接受的(例如:[target=“\u blank”]
)。如果你想推荐任何东西,你应该推荐HTML5doctype:
@zzzzBov-过渡doctype适用于那些不再使用旧的、不推荐使用的标记的页面。新网页不应该使用这些东西。我不推荐新的doctype的原因是,正如我在OP中所说的,他对xhtml有兴趣。是的,我最终得到了发布的doctype,因为我尝试了几个,它们都导致IE崩溃。我已经更新了doctype。但这仍然会导致IE崩溃。看起来这只适用于IE 9/10。也许没有办法报告旧浏览器的bug?你可能认为他们仍然支持IE8,因为他们决定不允许在WindowsXP上安装IE9+。如果没有其他人能找到报告IE 8漏洞的地方,那么我就把这个标记为答案。这很公平,但是Connect似乎是微软很多产品的适当漏洞报告机制。如果他们不接受,我猜他们也不会接受任何其他方式的bug报告。我同意你的看法,当XP至少还在运行时,他们应该仍然支持IE8。