2013-04-30 53 views
0

我在寫一個腳本,它向HTML元素注入了一些代碼。如何測試傳遞給函數的元素是否是文檔本身?

一切工作正常通過設置:

element.innerHTML = "<p>foo</p>"; 

除非我傳遞的document本身,因爲這兩個:

document.innerHTML 

document[0].innerHTML 

不能設置(至少什麼都沒有顯示在我的屏幕上:-)

問題:
如何測試我傳遞的元素是文檔本身還是其他HTML元素?

+2

呃......這有什麼錯'元素=== document'? – raina77ow 2013-04-30 12:11:09

+0

ahm ...看起來太容易了...讓我試試:-) – frequent 2013-04-30 12:11:58

+0

@ raina77ow:太棒了!請讓它成爲答案,以便我可以檢查。 – frequent 2013-04-30 12:13:32

回答

3

那麼,你可以只檢查傳遞的對象是否是相同document

if (element === document) { 
    // ... 
} 
+0

這是正確的答案。 – Zo72 2013-04-30 12:18:16

2

您可以通過閱讀[[Class]]屬性進行檢查。

Object.prototype.toString.call(document); // [object HTMLDocument] 
Object.prototype.toString.call(document.body); // [object HTMLBodyElement] 

分別將您傳遞的變量名稱傳入.call()

+0

也不錯。我更喜歡'element === document''雖然 – frequent 2013-04-30 12:14:17

+0

@頻繁地這當然也可以,但只要你不處理多幀或多窗口環境 – jAndy 2013-04-30 12:18:29

相關問題