2009-05-14 5 views
4

ページの内容全体を現在の状態に戻すことができます。たとえば、jqueryを使用してページとやり取りする場合は、コンテンツを挿入するか、クラス名を追加または削除してドキュメントを変更しました。このドキュメントのマークアップを現在の形式でhtmlタグからhtmlタグに開始することは可能ですか?ページ全体のコンテンツを取得しますか?

答えて

5

DOMでルートオブジェクトを取得してinnerHTMLを呼び出すだけでは、それをすべて取得できませんか?

document.documentElement.innerHTML 

よう

+1

はい、できます。 - 私はこのフレーズを他のどこかで聞いたと思う。 – Richard

+1

またはDora the Explorer –

+1

待っていない、「それは何もできない! - それはディーア、ドーラじゃない。 *一口* –

7

何かこれは

+3

私はdocument.documentElement.outerHTMLを使用することができ、 ""と ""を追加する必要はないと思います。 –

4

ちょうど$( 'htmlの')を呼び出します。HTML()ページのソースを取得するためにjqueryのを使用して<HTML>開始タグと終了タグが含まれていません。

<html> 
<head> 
    <title>Just a test</title> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
    <script type="text/javascript"> 
    $(function() { 
      $('#showContent').click(function(event){ 
       event.preventDefault(); 
       var pageSource = '<html>' + $('html').html() +'</html>'; 
       alert(pageSource); 
      }); 
    }); 
    </script> 
</head> 
<body> 
    <a href="#" id="showContent" >show content</a> 
</body> 
</html> 
+4

それは揺れますが、タグとページの他のテキストを取得する方法はありますか?すなわち:DOCTYPE宣言など? 私はw3cの検証上の問題のために "パッシブ"マークアップスクレーパーに取り組んでおり、表示されているページのレンダリングされたHTML全体にアクセスする必要があります。 – kdawg

+1

私はまたJSが完全な_rendered_ページを取得できれば非常に興味があります。ユーザーデータを入力したフォームフィールドを含む可能性があります。可能であれば、これは広告などのサードパーティのスクリプトについては大きなセキュリティ上の懸念のようです。 –