2009-09-02 8 views
17

javascriptを使用してページのHTMLソースコードにアクセスする方法はありますか?ページからHTMLソースを取得するにはどうすればよいですか?

私はdocument.body.innerHTMLを使用できますが、本体にコードのみが含まれていることを知っています。私は、headタグとbodyタグの内容を含むすべてのページソースコードと、可能であればhtmlタグとdoctypeも取得したいと考えています。 可能ですか?これを行うには

答えて

25

使用

document.documentElement.outerHTML 

または

document.documentElement.innerHTML 
+0

はdocument.firstChildオブジェクトは、outerHTMLプロパティを持っていない理由をFirefoxで私は知らないが、innerHTMLので、私は除いてほとんどすべてを取得することができますdoctypeのでありがとう! – mck89

+7

@ mck89:ブラウザはありませんが、IEには「outerHTML」があります。 –

+5

Firefox /ほとんどのブラウザで入手したソースは、あなたが提供した「真の」ソースであることに注意してください。 IEでは、ユーザーがフォームに行った変更、新しいDOMコンテンツなどを含むページの「ライブ」HTMLを取得します。IEでは、.innerHTMLを要求する際に、IEが提供する混在した無効なタグスープになります要素。 – scunliffe

8

一つの方法は、XMLHttpRequestを使用してページを再要求するだろう、そしてあなたは、ウェブサーバからそのままページ全体を取得します。

0

はIEのために、あなたも使用することができます:[0] .outerHTML

10

これはXMLSerializerを使用してワンライナーで行うことができますdocument.allの。 文字列

<!DOCTYPE html><html><head> 

<title>html - javascript page source code - Stack Overflow</title> 
... 
0

を与える

var generatedSource = new XMLSerializer().serializeToString(document); 

  • 真のHTMLソースコードは(ない現在のDOMのserization)
  • を望んでいることを、ページがロードがGETを使用していたと仮定すると方法、

ページのソースを再ダウンロードすることができます。

fetch(document.location.href) 
    .then(response => response.text()) 
    .then(pageSource => /* ... */) 
+0

サーバが次回同じコンテンツを提供する必要がないため、信頼性がありません。 –

関連する問題