任何机构都可以告诉我如何使用浏览器兼容的javascript创建.txt文件。
并在创建文件后,它将另存为diaglog框,以便我可以保存创建的文件。
任何其他逻辑也是好的
我在IE中做得很好,
但是相同的代码没有在其他浏览器中运行
答案 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 允许它:))
答案 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在新标签页中打开内容可能是更好的解决方案。