can any body tell me how i create a .txt file using javascript which is browser compatable too.
and after creating the file it gives the save as diaglog box so that
you need to send the data to the server and then offer a link to download it. Here's a terrible example with jquery and php just to give you basic idea.
$.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}"
));
}
?>
If you're looking for IE only solution, try this:
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();
}
You can't do this, for hopefully obvious security reasons. JavaScript has no access to the file system...in IE it's not JavaScript, but ActiveX doing this...it just has a JavaScript API exposed.
The problem isn't that Firefox doesn't do this...it's that IE ever allowed it :)
In this post In Firefox, Write to a File using Javascript?
You can only do this by sending your data to a server-side language, which can write to files. Then you could send the location of the file back and redirect the user there.
One may indeed initiate data URL downloads, including in a way to prompt a file dialog (though not with a default path or even file type). See https://stackoverflow.com/a/13696029/271577 for such a solution (along with text link examples). That being said, opening the content in a new tab via data URLs may be a better solution if you can get users to manually save using their browser.
For a great example of how to do this, look at TiddlyWiki which implements a single user wiki in Javascript. It supports all the major browsers and in each will save a copy of itself to the local disk.
It uses the FileSystemObject in IE (as described previously in this question) The best info for file saves in FireFox is https://developer.mozilla.org/en/Code_snippets/File_I%2F%2FO
For Chrome, Opera & Safari is uses a little applet:
The TiddlySaver Java applet allows TiddlyWiki to save changes in a local version (from a file:// URL) of Safari, Opera and other browsers.