如何使用javascript或jquery在客户端计算机上创建文本文件

如何使用javascript或jquery在客户端计算机上创建文本文件

它可以在IE和Firefox上…但想知道它将如何工作在Safari和Crome搜索相同…

对于FF

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); // Open the save file dialog var nsIFilePicker = Components.interfaces.nsIFilePicker; var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker); fp.init(window, "Save File...", nsIFilePicker.modeSave); //fp.appendFilters(nsIFilePicker.filterHTML); fp.appendFilter("HTML File","*.htm; *.html"); fp.defaultString="data.htm"; var rv = fp.show(); if (rv == fp.returnCancel) return; if(rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace){ // Open the file and write to it var file = fp.file; //var filePath = file.path+".htm"; // //file.initWithPath(filePath); if(file.exists() == false){//create as necessary file.create( Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 420 ); } var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"] .createInstance( Components.interfaces.nsIFileOutputStream ); outputStream.init( file, 0x04 | 0x08 | 0x20, 640, 0 ); var result = outputStream.write( output, output.length ); g.filename.value=file.path; outputStream.close(); alert('File has been saved.' ); } 

对于IE

 var w = window.frames.w; if( !w ) { w = document.createElement( 'iframe' ); w.id = 'w'; w.style.display = 'none'; document.body.insertBefore( w ); w = window.frames.w; if( !w ) { w = window.open( '', '_temp', 'width=100,height=100' ); if( !w ) { window.alert( 'Sorry, could not create file.' ); return false; } } } var d = w.document; d.open( 'text/xml', 'replace'); d.charset = "UTF-8"; d.write(JWPFormToHTML(f)); d.close(); var name= g.filename.value; if( d.execCommand( 'SaveAs', false , name ) ) { g.filename.value=name; //document.getElementById("filename").value=""; alert('File has been saved.' ); } else { alert( 'The file has not been saved.\nIs there a problem?' ); } w.close(); return false; 

编辑

得到它在safari和chrome上你还必须创建一个签名的applet来创建读写文件并使用相同的方式访问本地数据:P

不确定您的需求是什么,但由于无法写入文本文件(cookie除外),您是否可以使用HTML 5 Web存储? 它仅在最新的浏览器中受支持,请参见此处的示例用法: http : //davidwalsh.name/html5-storage