根据规范, 只有 BODY
和 FRAMESET
元素提供了“onload”事件以进行附加,但我想知道在JavaScript中何时向DOM添加了动态创建的DOM元素。
我目前使用的超级幼稚的启发式方法如下:
- 遍历元素的 parentNode 属性,直到找到最终祖先(即 parentNode.parentNode.parentNode.etc,直到 parentNode 为 null)
- 如果最终祖先具有定义的、非空的 body 属性
- 假设所讨论的元素是DOM的一部分
- 否则
- 在100毫秒后再次重复这些步骤
我想要的是确认我正在做的是否足够(同样,在IE7和FF3中都有效),或者一个更好的解决方案,出于某种原因,我完全没有意识到;也许还有其他应该检查的属性等。
编辑:我希望有一种跨浏览器的方法来实现这个,不幸的是,我生活在一个不止有一个浏览器的世界中;尽管如此,我们仍然欢迎浏览器特定的信息,但请注意你知道哪个浏览器它可以在其中工作。谢谢!
Node.contains
。下面附上答案链接:https://dev59.com/FHVC5IYBdhLWcg3wqzHV#13725984 - Chris Calo