Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中读取本地文本文件_Javascript_Html_Hta - Fatal编程技术网

在JavaScript中读取本地文本文件

在JavaScript中读取本地文本文件,javascript,html,hta,Javascript,Html,Hta,我刚开始学习JavaScript,我有一个小问题。我有一个文本文件,里面有一些文本。我可以在浏览器中读取文本文件的内容(我的意思是在.hta中),但文本显示为一行。我想给每一行添加换行符。我该怎么做 文本文件内容: 我想住在灵魂与肉体相遇的地方 让太阳拥抱我 JS: var fso = new ActiveXObject("Scripting.FileSystemObject"); var txtFile = fso.OpenTextFile("C:\\myJS\\test.txt", 1,

我刚开始学习JavaScript,我有一个小问题。我有一个文本文件,里面有一些文本。我可以在浏览器中读取文本文件的内容(我的意思是在.hta中),但文本显示为一行。我想给每一行添加换行符。我该怎么做

文本文件内容:
我想住在灵魂与肉体相遇的地方
让太阳拥抱我

JS:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var txtFile = fso.OpenTextFile("C:\\myJS\\test.txt", 1, false, 0);
var fText = txtFile.Read(1000);
document.write(fText);
txtFile.Close();
fso = null;
输出:
我想生活在灵魂与肉体相遇的地方,让太阳拥抱我


感谢您的建议。

这是因为HTML无法识别文本文件中的换行符。您需要向输出中添加一些HTML。大概是这样的:

function readFile (path) {
    var fso = new ActiveXObject('Scripting.FileSystemObject'),
        iStream=fso.OpenTextFile(path, 1, false);
    while(!iStream.AtEndOfStream) {
        document.body.innerHTML += iStream.ReadLine() + '<br/>';
    }        
    iStream.Close();
}
函数读取文件(路径){
var fso=new ActiveXObject('Scripting.FileSystemObject'),
iStream=fso.OpenTextFile(路径,1,false);
而(!iStream.AtEndOfStream){
document.body.innerHTML++=iStream.ReadLine()++'
'; } iStream.Close(); }
此函数读取整个文件。如果要精确读取1000行,可以使用
for
循环,但需要使用
AtEndOfStream
属性检查文件是否小于1000行


只需注意此函数在
body
标记内调用,或在
窗口中调用。onload
处理程序。请注意,我的代码使用DOM操作而不是
document.write()

Hmm。这可能是我做错了什么,或者这不起作用=\@akinuri OOPS,很抱歉,我在循环条件中使用了错误的属性,我已经更正了代码。它仍然不起作用。它不打印任何东西。你能试试看它有没有印东西吗?忘记换行,我甚至不知道它是否会打印文本。而且似乎没有。。。看来我最好去睡觉了。。。现在代码正常了,只需更正
ActiveX
调用。我还测试了代码,现在可以运行了。