2012-10-02 16 views
2

我正在尋找一個js單線程以刪除<html>標記中的所有內容。如何使用純javascript刪除<html>中的所有內容?

我想刪除<head><body>和其他所有聲明。

+3

爲什麼?那時你將無法做任何事情,因爲JS也會消失。 – Oded

+0

會不會把它放在無限循環中? – ChrisW

+0

也許嘗試使用ajax來加載一些PHP腳本,將刪除everyhting – Derfder

回答

6

document.write()將創建空白頁,或者實際上下面的代碼:

<html> 
    <head></head> 
    <body></body> 
</html> 

但我不知道這會不會發生衝突,如果代碼將在外部文件

+1

This Works!非常感謝你! – John

+0

@約翰你應該接受這是正確的答案。 –

2

這不是一個oneliner ,但它能完成你要求的工作。

document.open(); 
document.write(""); 
document.close(); 
+0

無需打開和關閉文檔。就像@Zefiryn所說的那樣,簡單地調用document.write()就可以做到這一點。謝謝你的回答 – John

+0

@John它似乎可以工作,但是我沒有使用'open'和'close'有問題......這可能你可能不會遇到。 – Ian

+0

它可能在Chrome擴展腳本的上下文中「完美無瑕」(我無法從體驗中得知這一點;例如,Chrome可能已經爲您隱式執行了'document.open()'),但它在正常的JS函數/腳本環境下不能可靠地工作,至少如果你想保持跨瀏覽器兼容的話,至少不會。 – BalusC

0

一旦你的HTML頁面被加載,javascript被加載到瀏覽器內存中。因此,如果你要加載jQuery實例,你可以簡單地調用;

$('html').empty(); 

試用Google Chrome的Javascript控制檯。鍵入上面的代碼,然後你仍然可以訪問jQuery並操作DOM。

編輯

爲了回答您的評論約翰。你沒有在你的問題中表明jQuery不能被使用。

+0

呵呵,謝謝!但是沒有jQuery允許;) – John

+1

+1此外,@John,幾乎*無處不在*,不允許使用庫,在問題中明確指出。簡單地說「js」並不假定「vanilla EMCAScript」。 – msanford

+0

@msanford不幸的是,有些人不知道如何構建一個好的問題和其他人沒有思考的投票。感謝+1! –

2

1襯墊:)

window.onload = function(){ document.getElementsByTagName("html")[0].innerHTML = "";};