如何使用Javascript编写本地.txt
我想在IE中使用javascript控制台编写.txt文件。 我已经有了我想在文件上写的字符串; 所以,我想做的是:
var refTab=document.getElementById("historymatch_tb0"); var ttl; for ( var i = 0; row = refTab.rows[i]; i++) { row = refTab.rows[i]; for ( var j = 0; col = row.cells[j]; j++ ) { WriteInFile (col.innerHTML); } }
我没有的是WriteInFile函数,因为我对此有所了解:
function WriteInFile (a) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var filename = "c:\\Users\\Riccardo\\a.txt"; var f = fso.OpenTextFile(filename, 2, true); f.WriteLine(a); f.Close(); }
这不起作用,脚本不会给我错误,但文件为空,控制台显示单词:undefined! 问题出在哪儿? 谢谢!
从HTML5开始,这是可能的。 见http://www.w3.org/TR/file-writer-api/#the-filesaver-interface和http://eligrey.com/blog/post/saving-generated-files-on-the-client-侧
如果我正确地理解你,那么你真正要问的是在会话之间将信息保存在js中。 我理解文件如何看起来很适合该任务。 但由于浏览器对文件系统的访问权限非常有限,因此并不理想。
您可以在浏览器的Web存储中保留所需的信息,而不是使用本地文件。 你可以稍后来找回它。 有关详细信息,请访问http://www.html5rocks.com/en/features/storage
也许这是一些浏览器问题? 我试过IE9 – 它工作正常(参见jsfiddle – 这是你的代码)
var a = "Hello"; WriteInFile(a);
但是,我也必须启用不安全的activeX执行
UPD:为什么你吝啬我? UPD2:
for ( var i = 0; row = refTab.rows[i]; i++)
也许可能在这里问题? 你应该写
var i = 0; i < refTab.rows.lenght; i++
代替
for ( var i = 0; row = refTab.rows[i]; i++)
并且,尝试添加alert(1); 循环(检查它是否正常工作)