用于保存txt文件的JavaScript代码

时间:2011-07-28 05:00:48

标签: javascript html

任何机构都可以告诉我如何使用浏览器兼容的javascript创建.txt文件。

并在创建文件后,它将另存为diaglog框,以便我可以保存创建的文件。

任何其他逻辑也是好的

我在IE中做得很好,

但是相同的代码没有在其他浏览器中运行

6 个答案:

答案 0 :(得分:2)

如果您正在寻找仅限IE的解决方案,请尝试以下方法:

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();
}

答案 1 :(得分:2)

  

由于明显的安全原因,你无法做到这一点。 JavaScript的   无法访问文件系统...在IE中它不是JavaScript,但是   ActiveX执行此操作...它只是暴露了一个JavaScript API。

     

问题不在于Firefox不会这样做......这就是IE   允许它:))

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

答案 2 :(得分: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}"
        ));
    }

?>

答案 3 :(得分:1)

有关如何执行此操作的一个很好的示例,请查看在{Javascript中实现单个用户wiki的TiddlyWiki。它支持所有主流浏览器,并且每个浏览器都会将自身的副本保存到本地磁盘。

它使用IE中的FileSystemObject(如本问题前面所述) FireFox中文件保存的最佳信息是https://developer.mozilla.org/en/Code_snippets/File_I%2F%2FO

Chrome,Opera&amp; Safari使用了一个小程序:

  

TiddlySaver Java小程序允许TiddlyWiki保存更改   Safari,Opera等本地版本(来自file:// URL)   浏览器。

答案 4 :(得分:0)

您只能通过将数据发送到可写入文件的服务器端语言来执行此操作。然后你可以发回文件的位置并将用户重定向到那里。

答案 5 :(得分:0)

确实可以启动数据URL下载,包括以提示文件对话框的方式(尽管不使用默认路径甚至文件类型)。有关此类解决方案,请参阅https://stackoverflow.com/a/13696029/271577(以及文本链接示例)。话虽如此,如果您可以让用户使用他们的浏览器手动保存,通过数据URL在新标签页中打开内容可能是更好的解决方案。