Skip to content Skip to sidebar Skip to footer

Write To A Textfile Using Javascript

Under Firefox, I want to do something like this : I have a .htm file, that has a button on it. This button, when I click it, the action will write a text inside a local .txt file.

Solution 1:

Javascript is not allowed to access hard drive but you can use ActiveXObject to create or write to text file using Javascript.

functionwriteToDisk(writeString) {

var fso = newActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile(theFile, true);
a.WriteLine(writeString);
a.Close();
}

Happy coding

Solution 2:

Even if you run it locally, I doubt that Firefox will let you access the filesystem. However, if you create an extension it would be able to access the filesystem.

Solution 3:

Hi try this example still if you have the problem:

<?xml version="1.0"?><?xml-stylesheet href="chrome://global/skin/" type="text/css"?><windowid="mywindow"title="Find Files"orient="horizontal"xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"><gridflex="1"><columns><columnflex="1"/><column/></columns><rows><row><boxheight="80"><labelvalue="PDE-Identity"/><textboxid="pde"value=""multiline="true"/><row><labelvalue="FirstName"/><textboxid="fname"value=""multiline="true"/></row><buttonid="save"label="save"oncommand="save();"/></box></row></rows></grid><!--<script>
read();
</script>--><scripttype="application/x-javascript">
<![CDATA[

var savefile = "c:\\mozdata.xml";

functionsave() {
    try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
    } catch (e) {
        alert("Permission to save file was denied.");
    }
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);
    file.initWithPath( savefile );
    if ( file.exists() == false ) {
        alert( "File is created " );
        file.create( Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 420 );
    }
    var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"]
        .createInstance( Components.interfaces.nsIFileOutputStream );
    /* Open flags
    #define PR_RDONLY       0x01
    #define PR_WRONLY       0x02
    #define PR_RDWR         0x04
    #define PR_CREATE_FILE  0x08
    #define PR_APPEND      0x10
    #define PR_TRUNCATE     0x20
    #define PR_SYNC         0x40
    #define PR_EXCL         0x80
    *//*
    ** File modes ....
    **
    ** CAVEAT: 'mode' is currently only applicable on UNIX platforms.
    ** The 'mode' argument may be ignored by PR_Open on other platforms.
    **
    **   00400   Read by owner.
    **   00200   Write by owner.
    **   00100   Execute (search if a directory) by owner.
    **   00040   Read by group.
    **   00020   Write by group.
    **   00010   Execute by group.
    **   00004   Read by others.
    **   00002   Write by others
    **   00001   Execute by others.
    **
    */
    outputStream.init( file, 0x04 | 0x08 | 0x20, 420, 0 );
    var output = document.getElementById('pde').value;
    //var out = document.getElementById('fanme').value;var result = outputStream.write( output, output.length );
    outputStream.close();
    alert( "File is updated" );


}

<!--
functionread() {
    try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
    } catch (e) {
        alert("Permission to read file was denied.");
    }
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);
    file.initWithPath( savefile );
    if ( file.exists() == false ) {
        alert("File does not exist");
    }
    var is = Components.classes["@mozilla.org/network/file-input-stream;1"]
        .createInstance( Components.interfaces.nsIFileInputStream );
    is.init( file,0x01, 00004, null);
    var sis = Components.classes["@mozilla.org/scriptableinputstream;1"]
        .createInstance( Components.interfaces.nsIScriptableInputStream );
    sis.init( is );
    var output = sis.read( sis.available() );
    document.getElementById('blog').value = output;
}
-->

]]>
</script></window>

Post a Comment for "Write To A Textfile Using Javascript"