我正在编写一个将一些代码注入 HTML 元素的小脚本。
通过设置一切正常:
element.innerHTML = "<p>foo</p>";
除非我自己被传递document
,因为两者:
document.innerHTML
和
document[0].innerHTML
无法设置(至少我的屏幕上什么都没有显示:-)
问题:
如何测试我传递的元素是文档本身还是正文或其他 HTML 元素?
我正在编写一个将一些代码注入 HTML 元素的小脚本。
通过设置一切正常:
element.innerHTML = "<p>foo</p>";
除非我自己被传递document
,因为两者:
document.innerHTML
和
document[0].innerHTML
无法设置(至少我的屏幕上什么都没有显示:-)
问题:
如何测试我传递的元素是文档本身还是正文或其他 HTML 元素?
好吧,您可以检查传递的对象是否与以下内容相同document
:
if (element === document) {
// ...
}
您可以通过阅读[[Class]]
属性进行检查。
Object.prototype.toString.call( document ); // [object HTMLDocument]
Object.prototype.toString.call( document.body ); // [object HTMLBodyElement]
分别将传递的变量名传入.call()
.