3

タイトルとして、私の質問は、ページ上のすべてのDOMコンテンツを出力する方法です(サーバーコンピューターにテキストファイルとして保存するか、結果をajaxを使用して他のphp関数に渡します)?

私はいくつかの宿題をしました。curl は "curl http://google.ca > dom.txt" を使用してすべての DOM コンテンツを出力できますが、このアプローチでは Javascript が生成したコンテンツは保存されません。つまり、JavaScript コードは走りません。もう 1 つの方法は、JavaScript コードをページに埋め込んで、出力したい Web サイトをページにロードさせ、JavaScript コードを使用して、すべてがロードされた後にすべての DOM ファイルを保存することです。

phantom.jsがそのような仕事をできるかどうかはわかりません。できる場合、どうすればよいですか?

これを達成する方法について、どの団体でも詳細な回答を与えることができますか?

私はどんなソリューションにもオープンです。このプログラムは私のサーバー上で実行され、サービスを提供します。

前もって感謝します。

4

3 に答える 3

4

なぜだめですか:

jQuery(document).ready(function($) {
    $.post(
        '/your_filename.php',
        'html='+$("html").html(),
        function(response){
            alert(response);
        }
    );
});
于 2012-05-25T00:21:28.300 に答える
1

を使用して、HTML 要素のコンテンツ (head と body の両方を含む) を取得できますdocument.documentElement.innerHTML。すべてが必要な場合は、 で連結できdocument.doctypeますdocument.documentElement.outerHTML

クロスブラウザーではないことに注意してくださいouterHTML(IE と Chrome では機能しますがouterHTML、Firefox では機能しません)。Firefox でシミュレートする方法については、次の質問を参照してください: How do I do OuterHTML in firefox?

于 2012-05-25T00:19:28.933 に答える
0

Javascript はクライアント側の言語であるため、サーバー上で実行するには特殊な技術が必要になります。PHP は、クライアントに送信する前に dom 要素を構築および変更できるため、実際には DOM を処理する機能を備えています。詳細については、こちらを参照してください。

これを行うことで何を達成しようとしているのかはよくわかりませんが、頑張りすぎているようです。クライアントが向きを変えてコードをサーバーに送り返すことができるように、クライアントにコードを送信しています。サーバーはファイルとして保存できますか? それが必要な場合は、Brilliand と Iambriansreed のアドバイスに従って、Javascript/jQuery で dom 要素をすくい上げてください。

于 2012-05-25T00:22:44.970 に答える