2011-06-21 57 views

回答

6

我在想這應該爲雅做的伎倆。

$('html').html(); 

JavaScript從瀏覽器(安全)運行時無法寫入文件。但是你可以把它發送到一個PHP腳本並從那裏寫入一個文件。例如:

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

write.php

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

newish browsers(IE 10,FF 20,鉻26,Safari瀏覽器6,劇院15),則可以創建一個Blob,並保存到一個使用window.URL.createObjectURL的文件。

DemoReference

objectURL = window.URL.createObjectURL(blob); 
  • blobFile對象或Blob對象創建一個URL對象。
  • 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

Hello Radek,如果我的下載文件夾中已經有一個具有相同名稱的文件,有沒有辦法覆蓋它的內容,而不是創建另一個文件? – Kumar

+0

@Kumar這與問題無關。瀏覽器將創建一個新版本的文件,方法是稍微更改文件名以使其具有唯一性。如果你想覆蓋原來的內容,看看寫一點點Node.js腳本來請求一個文件並存儲在本地;例如https://github.com/request/request#streaming – Radek