保存TXT文件的Javascript代码

javascript code to save a txt file

本文关键字:Javascript 代码 文件 TXT 保存      更新时间:2023-09-26

谁能告诉我如何使用javascript创建一个浏览器兼容的。txt文件。

和创建文件后,它给出了另存为对话框,这样我就可以保存创建的文件。

其他逻辑也可以

我在IE做得很好,

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

您不能这样做,希望是出于明显的安全原因。JavaScript无法访问文件系统…在IE中,它不是JavaScript,但是ActiveX做这个…它只是暴露了一个JavaScript API。

问题不在于Firefox不做这个…这就是IE允许:)

在这篇文章中,在Firefox中,写一个文件使用Javascript?

如果您正在寻找仅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();
}

您需要将数据发送到服务器,然后提供下载链接。这里有一个糟糕的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}"
        ));
    }
?>

关于如何做到这一点的一个很好的例子,看看TiddlyWiki,它在Javascript中实现了一个单用户wiki。它支持所有主要的浏览器,并且在每个浏览器中都会将自己的副本保存到本地磁盘。

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

Chrome, Opera &Safari使用了一个小applet:

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

您只能通过将数据发送到可以写入文件的服务器端语言来实现这一点。然后您可以将文件的位置发回并将用户重定向到那里。

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