当前位置:  开发笔记 > 编程语言 > 正文

IE8中最有可能导致Javascript错误的原因是什么?

如何解决《IE8中最有可能导致Javascript错误的原因是什么?》经验,为你挑选了2个好方法。

我在IE8中看到很多Javascript错误,这些错误在IE7(以及Firefox,Chrome和Safari)中运行良好.我知道IE对Javascript安全性等内容进行了一些更改.其中一些没有给出明确的错误消息 - 跨域违规等事情最终会抛出非常模糊的异常.

当我们对IE8 Javascript错误进行故障排除时,让我们制作一份顶级违规者清单.请列出IE8 Javascript导致Javascript错误的方式的一个更改.



1> scunliffe..:

我可以验证"unique_username"发布的那些是准确的!

(引用)实际上TON的东西已经改变了.

首先,它真的很重要.在IE8中,有3种(三种)模式.

IE5 Quirks - 你的页面没有doctype,像IE5那样的页面渲染

IE 7标准模式 - 您有一个doctype,但要么选择退出IE8标准模式,要么运行在localhost上,或者在"兼容模式"下运行

IE 8标准模式 - 您有一个doctype,并且在INTRANET上(默认模式)

现在,如果你在IE5/IE7模式下渲染,那么除了会添加一些不会干扰你的页面的方法之外什么都没有改变.

但是,如果与大多数情况一样,您正在使用doctype集运行,因此在IE8标准模式下,发生了以下更改.

1.) document.getElementById( id ); //now only returns the CORRECT matches!

2.).getElementsByName(name); //现在只返回CORRECT匹配!不,不固定!

3.) .getAttribute( name ); //returns the CORRECT value for the given attribute!
4.) .setAttribute( name, value ); //actually SETS the name/value CORRECTLY (no more cAmElCaSe crud)!
5.) CSS Expressions are NO LONGER allowed (deprecated)
6.) Operation Aborted errors will still be thrown (in some cases) however the cases are fewer, and the error won't kill the entire page/DOM
7.) The attributes[] array on elements should (from the RC build onwards) be correct in terms of contents, have a length, etc.
8.) Button elements now submit the contents of the value attribute, NOT the HTML contents of the Button Tag

还有一堆CSS 2.1修复程序,因此之前变得怪异或者需要修复的东西应该要好得多.(有关alpha /透明度的详细信息,请参见下文 - 已发生重大变化)

有关详细信息,请参阅IE博客.

另请参阅Web Bug Track,了解有关IE8(以及所有其他浏览器)的错误,修复程序的细粒度详细信息

SVG,圆角,基于ECMAScript的事件监听器,更好的表单元素设计/事件等仍然缺失.

PS如果您有特定问题,请告诉我们,我们将帮助您找到它们.;-)

更新:

windows.resize事件目前在IE8 Beta2和IE8合作伙伴版本1(不会触发)中被破坏,现在已在RTM版本中修复

window.open(); in IE8 Partner Release is sometimes failing "claiming" that the target url is not available (quirky, hard to reproduce)



2> machineghost..:

这是我发现的真正有趣的一个(/ sarcasm off).如果您的MIME类型为"application/javascript",而不是"text/javascript"Internet Explorer将:

A)忽略意外的MIME类型并使用该文件?

B)根本没有加载文件?

C)获取文件的前一百行左右,将它们添加到HTML之前的另一个JS文件中,然后给出各种错误,因为你的乱序半文件+实际文件没有工作?

没错,答案是C ......我没骗你.我们曾经使用"application/javascript"MIME类型来防止IE6/7中的JS文件缓存,因此我浪费了一整天的时间来试图弄清楚为什么IE8会给出一些非常疯狂的错误.幸运的是,当我告诉我在500行文件的650行上有错误时,我终于弄清楚发生了什么(然后当我在调试器中查看文件时,我看到了前置的其他文件).

故事的道德:如果你想让IE8工作,请不要在你的JS文件的MIME类型中使用"application/javascript".

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有