【发布时间】:2012-11-07 18:38:08
【问题描述】:
var result = Object.prototype.toString.call(nodes);
return (
typeof nodes === 'object'
&&
/^\[object (HTMLCollection|NodeList|Object)\]$/.test(result)
&&
nodes.hasOwnProperty('length')
&&
(nodes.length == 0 || (typeof nodes[0] === "object" && nodes[0].nodeType > 0))
)
这在 Chrome 中可以正常工作,但在 IE8(也可能是 7)中会引发错误。 return 行发生错误。
这是我从这里某处偷来的(我会继续寻找链接)。它应该确定给定对象 (nodes) 是否是节点列表。这个错误有很多结果,但我找不到这个案例。有什么东西会攻击任何人吗?
谢谢!
【问题讨论】:
-
这里是我得到测试函数的原文:stackoverflow.com/questions/7238177/…
-
哪个对象不支持哪个属性或方法?
-
此链接可能包含解决您的问题的方法。虽然与检查节点列表无关,但您对 hasOwnProperty 的使用在我的记忆中触发了一些事情。在 IE8 中,它仅适用于非 Host 对象,但在 cmets 中有一个解决方法:stackoverflow.com/questions/8157700/…
-
@Musa 很好,更新的问题。
-
@Musa:IE 实际上并没有告诉你。就是这么说的。
标签: javascript internet-explorer return