2011-06-21 10 views
4

domのさまざまな要素のプロパティを変更し、そのページをhtmlファイルとして保存したいと考えています。ソースの表示にDOM調整が反映されるとは限りません。ページ全体をファイルに書き込む方法や、更新されたソースページをファイルに入れる方法はありますか?JavaScript/Jquery HTML DOM構造/ページをHTMLファイルまたはテキストにエクスポートする

答えて

6

私はこれがあのトリックをするべきだと思っています。

$('html').html(); 

ブラウザ(セキュリティ)から実行されたときにJavaScriptでファイルを書き込むことができません。しかし、これをPHPスクリプトに送ってそこからファイルに書き込むことができます。たとえば:

$.post('write.php', { dom : $('html').html() }); 

write.php newish browsers

file_put_contents('new.html', urldecode($_POST['dom'])); 
6

(IE 10、FF 20、クロム26、サファリ6、オペラ15)、あなたはBlobを作成しにそれを保存することができますファイルはwindow.URL.createObjectURLです。

DemoReference

blobは用URLオブジェクトを作成するための Fileオブジェクトまたは Blobオブジェクトである
objectURL = window.URL.createObjectURL(blob); 
  • objectURLは、生成されたオブジェクトのURLです。指定されたファイルの全内容は、URLのテキストで表されます。その後、window.openで使用できます。

Blobの例:

var parts = ["<p class=\"paragraph\"><a id=\"link\">hey!<\/a><\/p>"]; 
new Blob(parts, { "type" : "text\/html" }); 

あなたのアドレスバーに次のコマンドを実行Chromeで現在のブロブを一覧表示するには:このため

chrome://blob-internals 
+1

サポートがあまりにも今、他のブラウザではかなり良いです、間違いなく私のFirefoxのバージョン[http://caniuse.com/#feat=bloburls](http://caniuse.com/#feat=bloburls)で動作します:window.open(window.URL.createObjectURL(new Blob([ document.documentElement.outerHTML]、{type: 'text/plain'})))); – Ozone

+0

こんにちはRadekさん、私のダウンロードフォルダに既に同じ名前のファイルがある場合、その内容を上書きして別のファイルを作成しない方法がありますか? – Kumar

+0

@クマーこれは質問とは無関係です。ブラウザは、ファイル名を少し変えて新しいバージョンのファイルを作成し、一意にします。元のコンテンツを上書きする場合は、ファイルをリクエストしてローカルに保存する小さなNode.jsスクリプトを作成します。例えばhttps://github.com/request/request#streaming – Radek

関連する問題