Javascript - 逐行读取文本文件。使用什么浏览器有关系吗?

标签 javascript jquery web-services mobile file-io

我刚刚开始接触 Javascript 和移动网络编程。我不确定的一件事是如何编写在任何浏览器上运行的正确代码,而最终用户对他们没有任何额外要求(使用什么浏览器)。

我在 google chrome 中编写代码,最近在 c9.io 中编写代码。

我认为这会起作用:

 function readTextFile(file) 
 {
     var client = new XMLHttpRequest();
     client.open('GET', file);
     client.send();
     client.onreadystatechange = function() {
         alert(client.responseText);
     }
 }

但我收到未定义 XMLHTTPRequest 的错误。我一直在试图弄清楚为什么会这样,并且我一直在使用不支持它的不同浏览器。我原以为简单的文件 io 不会那么困难,但它给我带来的麻烦比我希望的要多。

输入文本文件的最佳方式是什么?它是 1 个没有写入任何内容的文本文件。只读。最终用户没有选择这个文本文件,它应该是唯一的选择。

最佳答案

你的代码顺序不对,send方法应该是最后一个;否则,您的代码没有问题,它应该可以在所有现代浏览器中正常工作。提到的订单问题,或者可能是其他原因(之前)导致了该错误。下面的代码片段还将接收到的文本拆分为文本行数组

var xhr, i, text, lines;
if(window.XMLHttpRequest){
    // IE7+, Firefox, Chrome, Opera, Safari
    xhr = new XMLHttpRequest();
}else{
    // IE5, IE6  - next line supports these dinosaurs
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.onreadystatechange = function(){
    if(xhr.readyState == 4 && xhr.status == 200){
        text = xhr.responseText;
        lines = text.split("\n"); 
        for(i = 0; i < lines.length; i++){ 
            console.log(lines[i]); 
        }
    }
}
xhr.open('GET', 'http://domain/file.txt', true);
xhr.send();

关于Javascript - 逐行读取文本文件。使用什么浏览器有关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24598835/

相关文章:

javascript - 输入类型 ='file' 有问题

javascript - 当我使用 onKeyDown 事件时,移动元素会延迟

jquery - JQuery 1.4 的 Visual Studio 自动完成功能在哪里?

android - Ksoap2 Android - 如何为复杂对象的子属性指定命名空间?

C# 应用程序无法为 SSL/TLS 安全通道建立信任关系

javascript - 检查 contenteditable div 是否为空

javascript - 隐藏/显示 href 中的 DIV

jquery - 无法使作为背景一部分的按钮正常工作

javascript - 如何使用 JavaScript 切换 CSS 中的类?

web-services - 如何使用 cxf 组件使用 Apache camel 调用第三方 Web 服务