2013-11-02 31 views
-2

爲了得到一個頁面,我們在源代碼中,使用JavaScript,我們可以一起去:如何獲取我所在的實際頁面的完整源代碼?

var pageSource = document.documentElement.outerHTML; 

var pageSource = new XMLSerializer().serializeToString(document); 
  • 第一個將不是代碼html標記之前返回如<!DOCTYPE html>
  • 這兩種方法都會刪除文檔開始和結尾處的一些換行符。

那麼有沒有其他的方法可以像源代碼那樣返回源代碼而不需要任何HTTP調用呢?

+1

編碼器有一個明確的,合理的問題,已經清楚地研究了這一點,併發布了他們已經嘗試過的代碼。爲什麼這會降低投票率? –

+0

^這是什麼是互聯網...他們是4 downvotes,我認爲你upvote這個問題......謝謝克里斯^^ –

回答

1

你不能。一旦加載了網頁,原始源代碼就不會被瀏覽器保留 - outerHTMLXMLSerializer都嘗試從DOM樹重建HTML(或XML)。正如你發現的,這是一個不精確的過程,由於格式化怪癖(例如換行符),錯誤恢復,根本無法生存到DOM的元素(例如註釋和NOSCRIPT標籤)和DOM操作通過在網站上運行的Javascript。

+0

其實都回來的源代碼,因爲它,有評論和一切,我的猜測是DOM樹在XMLSerializer的情況下也包含這些數據,對於outerHTML,innerHTML的部分是這樣的,但是從DOM樹生成外部HTML的附加語法看起來(糟糕的)。 –

相關問題