[英]Reading txt File To Array With Javascript
我正在使用javascript將txt文件讀取到數組,但是當我document.write(lineArr[2]);
我什么都沒打印到屏幕上。
當我做console.log(lineArr);
我什么都沒拿到console.
這是我的txt文件格式,
test1@test.com
test2@test.com
test3@test.com
test4@test.com
test5@test.com
test6@test.com
test7@test.com
test8@test.com
test9@test.com
test10@test.com
這是我的JavaScript:
// This will read file and send information to other function
function getData() {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
var lines = xmlhttp.responseText;
intoArray(lines);
}
}
xmlhttp.open("GET", "text.txt", true);
xmlhttp.send();
}
function intoArray(lines) {
var lineArr = lines.split('\n');
// Just to check if it works output lineArr[index] as bellow*
document.write(lineArr[2]);
document.write(lineArr[3]);
}
如果要使用純JavaScript進行此操作,則應執行以下操作。 我通過添加成功和錯誤回調函數來模仿jQuery。 這應該可以重用。
getData('text.txt', 'text', handleSuccess, handleError);
function handleSuccess(data) {
intoArray(data);
}
function handleError(xmlhttp, statusText, errorText) {
document.write('Error: ' + errorText);
}
// This will read file and send information to other function
function intoArray(lines) {
var lineArr = lines.split('\n');
// Just to check if it works output lineArr[index] as bellow*
document.write(lineArr[2]);
document.write(lineArr[3]);
}
// Reusable code below, only needed without jQuery.
function createXMLHttpRequest() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else {
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
function getErrorText(xmlhttp) {
if (xmlhttp.status === 0) {
return 'Not connected.\nVerify Network.';
} else if (xmlhttp.status == 404) {
return 'Requested page not found. [404]';
} else if (xmlhttp.status == 500) {
return 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
return 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
return 'Time out error.';
} else if (exception === 'abort') {
return 'Ajax request aborted.';
} else {
return 'Uncaught Error.\n' + xmlhttp.responseText;
}
}
function getData(url, responseType, successHandler, errorHandler) {
var xmlhttp = createXMLHttpRequest();
xmlhttp.responseType = responseType;
xmlhttp.onreadystatechange = function() {
switch (xmlhttp.readyState) {
case 4:
var status = xmlhttp.status;
if (xmlhttp.response === '') {
status = -1;
}
switch (status) {
case 0: // SEE EXPLANATION BELOW
case 200:
successHandler(xmlhttp.response, xmlhttp.statusText, xmlhttp);
break;
default:
errorHandler(xmlhttp, xmlhttp.statusText, getErrorText(xmlhttp))
}
break;
default:
break;
}
}
// void open(DOMString method, DOMString url, boolean async)
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
參考HTTP狀態代碼0-這在MS XMLHTTP中是什么意思?
如果您選擇使用jQuery,那么您要做的就是替換第一行:
getData("text.txt", 'text', handleSuccess, handleError);
附:
$(document).ready(function() {
$.ajax({
url: 'text.txt',
dataType: 'text',
success: handleSuccess,
error: handleError
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.