Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么HTML会使IE崩溃?_Javascript_Html_Internet Explorer_Internet Explorer 8_Crash - Fatal编程技术网

Javascript 为什么HTML会使IE崩溃?

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

我有一个导致IE8崩溃的页面。我已经把它简化为导致崩溃的html/javascript。 我知道我将不得不做一些不同的事情,在IE中以我想要的方式显示页面而不破坏它。是否有人知道我可以向IE团队报告这一情况以修复它的方法

当鼠标悬停在跨度上时,会发生碰撞。创建一个scratch.html文件进行测试。使用JSFIDLE不会使其崩溃

更新:确保IE未处于兼容模式以使其崩溃。 更新2:它也会在安全模式下崩溃,因此它不是导致问题的附加组件。我已经在多台电脑上试过了

<!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。