在IE上开发Javascript的典型原因是什么?

前端之家收集整理的这篇文章主要介绍了在IE上开发Javascript的典型原因是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我经常遇到与 this post中描述的问题相反的问题.也就是说,我在专为Internet Explorer设计的遗留应用程序中有代码,我需要让它在Firefox中运行.

例如,我最近开发了一个大量使用手动模拟点击事件的应用程序,如下所示:

select.options[0].click();

…这完全破坏了Firefox中的应用程序.但是你不会在另一个问题的答案中找到这些信息,因为如果你的应用首先针对Firefox,那么你甚至不会尝试这些信息.

在迁移到现代浏览器时,开发人员应该更新旧版IE浏览器应该查找哪些其他内容

解决方法

这是我之前的研究发现的.我已经看到每个问题都阻止了真实应用程序在Firefox中运行.请随时编辑.

DOM

document.createElement应该只使用标记名称,但IE允许您
传递任意HTML(带属性等)

> http://msdn.microsoft.com/en-us/library/ms536389(VS.85).aspx

document.getElementById应该只找到具有给定id的元素,
但IE也返回给定名称的元素

> http://msdn.microsoft.com/en-us/library/ms536437(VS.85).aspx

IE为DOM元素创建隐式全局变量,但在Firefox中以这种方式引用元素会产生以下警告:

“Element referenced by ID/NAME in the
global scope. Use W3C standard
document.getElementById() instead.”

> http://www.west-wind.com/weblog/posts/677442.aspx
> http://code.google.com/p/fbug/issues/detail?id=853

IE的document.all是文档中所有元素的集合. Firefox不支持它.

> http://msdn.microsoft.com/en-us/library/ms537434(v=vs.85).aspx

使用innerText属性检索IE中的Element文本. Firefox将此属性称为textContent.

> http://msdn.microsoft.com/en-us/library/ms533899(v=vs.85).aspx

IE允许使用函数语法(即带括号)而不是正常的数组索引语法(即带括号)来引用集合中的项.例如,以下适用于IE:document.forms(0). Firefox不支持用法.

> http://msdn.microsoft.com/en-us/library/ms537457(v=VS.85).aspx

HTMLTableElement行和单元格应该引用HTMLCollections,但是
IE允许它们被称为函数; Firefox没有.

> http://msdn.microsoft.com/en-us/library/ms537484%28VS.85%29.aspx

IE默认insertRow的索引为-1;如果省略参数,则会出现Firefox错误.

> http://msdn.microsoft.com/en-us/library/ms536457%28VS.85%29.aspx
> https://developer.mozilla.org/en/DOM/table.insertRow

Node.text属性仅限IE

> http://msdn.microsoft.com/en-us/library/ms534677%28VS.85%29.aspx
> https://developer.mozilla.org/En/DOM/Node.textContent

活动

window.event是一种访问事件信息的IE特定方式;不是
Firefox支持.

> http://msdn.microsoft.com/en-us/library/ms535863(v=vs.85).aspx
> http://www.quirksmode.org/js/events_access.html#link3

事件使用attachEvent附加到IE中的Elements. Firefox使用addEventListener.另请注意,每个浏览器中的事件名称略有不同.

> http://msdn.microsoft.com/en-us/library/ms536343(v=vs.85).aspx

在IE中,可以从非鼠标事件中获取鼠标位置,但它不在其他浏览器中.此外,IE和Firefox中鼠标坐标属性名称也不相同.

> http://msdn.microsoft.com/en-us/library/ms533567(v=vs.85).aspx
> http://msdn.microsoft.com/en-us/library/ms533568(v=vs.85).aspx
> http://www.quirksmode.org/js/events_properties.html#position

IE支持单击方法,用于触发HTML元素上的onclick事件. Firefox中不存在此类功能.

> http://msdn.microsoft.com/en-us/library/ms536363(v=vs.85).aspx
> http://lifescaler.com/2008/04/simulating-mouse-clicks-in-javascript/
> http://www.devtoolshed.com/content/fix-firefox-click-event-issue

XML

Firefox将文本节点拆分为4096个字符块; IE没有.这个
意味着在IE和Firefox中,像childNodes这样的东西会有所不同.

> Is there a 4096 character limit for JavaScript XML text nodes?

Internet Explorer定义了一个parseError.errorCode属性
用于检测解析器错误的XMLDocuments. Firefox使用documentElement.nodeName ==“parsererror”加载包含文档中错误信息的XML文档.

IE忽略XML中的空格; firstChild总是返回第一个
ELEMENT_NODE

> http://www.w3schools.com/dom/prop_element_firstchild.asp
> https://developer.mozilla.org/en/Whitespace_in_the_DOM

Node.xml属性仅限IE

> http://www.w3schools.com/dom/prop_node_xml.asp
> http://www.grange.com.br/dicas-tecnicas/40-lotus/345-dom-xml-wrapper-for-javascript

进一步阅读

> http://www.reloco.com.ar/mozilla/compat.html
> https://developer.mozilla.org/en/migrate_apps_from_internet_explorer_to_mozilla
> http://www.impressivewebs.com/7-javascript-differences-between-firefox-ie/

原文链接:https://www.f2er.com/js/159380.html

猜你在找的JavaScript相关文章