我在寫一個腳本,它向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) {
// ...
}
這是正確的答案。 – Zo72 2013-04-30 12:18:16
您可以通過閱讀[[Class]]
屬性進行檢查。
Object.prototype.toString.call(document); // [object HTMLDocument]
Object.prototype.toString.call(document.body); // [object HTMLBodyElement]
分別將您傳遞的變量名稱傳入.call()
。
呃......這有什麼錯'元素=== document'? – raina77ow 2013-04-30 12:11:09
ahm ...看起來太容易了...讓我試試:-) – frequent 2013-04-30 12:11:58
@ raina77ow:太棒了!請讓它成爲答案,以便我可以檢查。 – frequent 2013-04-30 12:13:32