DOM Exceptions兼容性
兼容性见下表:
上表的兼容性数据还是比较老的,按照常规,IE9也应该支持的,最新的Chrome浏览器一定支持。
考古价值的IE浏览器不支持该接口,他们使用本地错误(解析错误之类)。例如,上面插入节点的例子,在老IE下抛出的就是:Invalid argument. 在XML中,会给出更多的信息:Insert position Node must be a Child of the Node to insert under.
三、常量列表
该接口定义了ExceptionCode整数值——向外暴露code属性——指向每种类型的错误;这些定义参考下面些常量:
如果索引是负值,或是超过了允许值。例如splitText的offset参数比字符串长度还要长。
DOMString的特定字符数据太大。其大小显示是依赖实现的,未被DOM定义(每个浏览器的限制细节参见DOM Core)。
节点不允许有新的子节点,或者新节点已经是其该节点的祖先节点。例如,尝试将Element节点塞入Text节点。
试图使用跨文档的节点操作。例如,appendChild的子节点来自其他文档。而不是先输出(使用importNode)。
一个非法的或无效的字符指定一个有限制的字符串,例如元素的name.
为不支持数据的节点指定数据。如Element节点本身不包含数据,其子节点包含。
NO_MODIFICATION_ALLOWED_ERRcode 7
试图修改一个不能被修改的节点。例如,装载一个只读的节点。
引用的节点不存在。例如,insertBefore相关子节点不是引用的子节点。
实现不支持的特定操作。例如使用一个节点的方法,但是此方法并没有实现,就是抛出此错误。
试图添加一个正在使用的属性。例如使用setAttributeNode引用一个已经在另一个元素使用的Attr, 而不是克隆它首先(使用cloneNode)。
试图使用一个不可用的对象。这种错误的抛出通常是因为某些内部原因,方法无法实现特定的操作。
无效或非法的字符串被指定。例如,用无效的CSS值设置selectorText属性的CSSStyleRule.//zxx: 我遇到该错误是因为在特定情况下,对标签使用了innerHTML方法。
INVALID_MODIFICATION_ERRcode 13
尝试修改一个节点的类型。例如,使用不匹配最初规则类型的值设置cssText属性的CSSRule.(如,为at-rule设置style-rule values值).
操作与命名空间冲突。例如createElementNS使用的名称歪瓜裂枣。
一个属性或操作不支持指定的节点。例如,尝试在一个不含float值的CSS属性上使用getFloatValue的CSSPrimitiveValue方法。
关于code:ExceptionCode(也就是上面列表中一而再再而三的code)的整数值表示DOMException的类型。
网友评论