IE中的DOM Level 2和3 Core支持?

时间:2015-02-23 12:22:32

标签: javascript internet-explorer dom

我刚刚发现一些使用.setAttributeNode的旧javascript代码被破坏了。 Internet Explorer(在IE10中测试)给出错误(未知属性),而FireFox警告它已被弃用。

RienNeVaPlu͢s向我指出文档说DOM Level 4 Core已经删除.setAttributeNode along with a bunch of other methods

我尝试搜索MS删除DOM Level 3 Core兼容性的时间和原因的文档。在检查了最新的补丁后,我认为它打破了2015年2月10日发布的MS15-009补丁,但我还没有确认。

任何人都可以确认是否已删除所有deprecated methods或是否只是其中一些?

以下是可能受影响的方法列表:

接口成员:

节点

    hasAttributes()
    attributes
    namespaceURI
    prefix
    localName
    isSupported
    getFeature()
    getUserData()
    setUserData()
    isSameNode() 

文档

    createCDATASection()
    createAttribute()
    createAttributeNS()
    createEntityReference()
    inputEncoding
    xmlEncoding
    xmlStandalone
    xmlVersion
    strictErrorChecking
    domConfig
    normalizeDocument()
    renameNode() 

的DOMImplementation

    getFeature() 

的Attr

No longer inherits from Node and therefore completely changed. 

元素

    getAttributeNode()
    getAttributeNodeNS()
    setAttributeNode()
    removeAttributeNode()
    schemaTypeInfo
    setIdAttribute()
    setIdAttributeNS()
    setIdAttributeNode() 

DocumentType

    entities
    notations
    internalSubset 

文本

    isElementContentWhitespace
    replaceWholeText() 

更新

我已经测试了一些,发现旧式事件也不起作用。

更新2:

我已经在IE10和IE11上测试过,行为是一样的,它们似乎都坚持使用DOM Level 4 Core。 您可以通过激活浏览器中的兼容模式(模拟IE7)恢复到较旧的DOM级别,但这也意味着新功能不可用。

1 个答案:

答案 0 :(得分:0)

似乎所有主流浏览器都在2015年初切换到W3C DOM 4.

为了兼容,您需要在网站上使用新的DOM结构。

使用Internet Explorer浏览的用户可以使Compatibility Mode模拟IE7并使用DOM 3(在IE10和IE11上测试)。