2011-07-28 81 views
3

任何機構可以告訴我如何使用JavaScript瀏覽器兼容創建.txt文件。javascript代碼保存一個txt文件

創建文件後,它將保存爲diaglog框,以便我可以保存創建的文件。

任何其他邏輯也是惠康

我正在做的很好,在IE,

,但如果你正在尋找IE相同的代碼沒有在其他瀏覽器

+0

我假設你使用一個ActiveX對象來創建文件到目前爲止? –

回答

1

只運行解決方案,試試這個:

function createFile() { 
    set fso = new ActiveXObject("Scripting.FileSystemObject"); 
    set s = fso.CreateTextFile("C:\test.txt", True); 
    s.writeline("HI"); 
    s.writeline("Bye"); 
    s.writeline("-----------------------------"); 
    s.Close(); 
} 
+0

是**腳本。FileSystemObject ** Microsoft專有解決方案@Mrchief? –

+0

@Saeed,看我的編輯。你正在創建一個ActiveX對象,這顯然只有IE。 'Scripting.FileSystemObject'來自Windows腳本組件。 – Mrchief

2

你不能做到這一點,希望明顯的安全原因。 JavaScript 無法訪問文件系統...在IE中它不是JavaScript,但是 ActiveX正在做這個......它只是暴露了一個JavaScript API。

問題不是Firefox不這樣做......它是有史以來IE允許 它:)

在這篇文章中In Firefox, Write to a File using Javascript?

0

你只能通過發送做到這一點你數據轉換爲可寫入文件的服務器端語言。然後,您可以發回文件的位置並將用戶重定向到那裏。

1

您需要將數據發送到服務器,然後提供一個鏈接來下載它。這裏有一個可怕的例子,jQuery和PHP只是爲了給你基本的想法。

$.ajax({ 
    type: "post", 
    url: "ajax.php", 
    data: { 
     type: "save", 
     text: "this is some text you want to send" 
    }, 
    dataType: "json", 
    success: function(data){ 
     window.open(data["url"]); 
    } 
}); 

ajax.php

<?php 
    if($_POST["type"] == "save"){ 
     $name = "random_name.txt"; 
     file_put_contents("$name",$_POST["text"]); 

     echo json_encode(array(
      "type" => "link", 
      "url" => "http://yourserver.com/{$name}" 
     )); 
    } 

?> 
1

對於如何做一個很好的例子,看看它實現在Javascript中單用戶維基。它支持所有主流瀏覽器,並且每個都會將自己的副本保存到本地磁盤。

它使用IE FileSystemObject對象(在這個問題如前所述) 對文件的最佳信息在Firefox保存爲https://developer.mozilla.org/en/Code_snippets/File_I%2F%2FO

對於鉻,歌劇& Safari是使用小程序,:

TiddlySaver Java小程序允許TiddlyWiki將更改保存在Safari,Opera和其他 瀏覽器的本地版本(來自file:// URL)的 中。

0

確實可以啓動數據URL下載,包括以提示文件對話框(儘管不是默認路徑或甚至文件類型)的方式。請參閱https://stackoverflow.com/a/13696029/271577獲取此類解決方案(以及文本鏈接示例)。也就是說,如果您可以讓用戶使用瀏覽器手動保存,通過數據網址在新標籤頁中打開內容可能是更好的解決方案。