使用JS从文本文件中读取变量
Read variable from text file using JS
在我的程序中我有一个变量
untangleGame.levels =
[
{
"level" : 0,
"circles" : [{"x" : 400, "y" : 156},
{"x" : 381, "y" : 241},
{"x" : 84, "y" : 233},
{"x" : 88, "y" : 73}],
"relationship" : {
"0" : {"connectedPoints" : [1,2]},
"1" : {"connectedPoints" : [0,3]},
"2" : {"connectedPoints" : [0,3]},
"3" : {"connectedPoints" : [1,2]}
}
},////////****** More Levels****///////
]
而且我必须将这个变量存储在文本文件中。我创建了一个函数
function loadDoc() {
var client = new XMLHttpRequest();
client.open('GET', '/KB/canvasAts/levels.txt');
client.onreadystatechange = function() {
if (client.readyState == 4 && client.status == 200)
{
untangleGame.levels = JSON. parse (client.responseText) ;
}
}
client.send();
}
警报功能显示文本,但变量仍未设置,我在第 var level = untangleGame.levels[untangleGame.currentLevel];
行收到错误消息 "Uncaught TypeError: Cannot read property '0' of undefined"
您需要将文本解析为 JSON。
替换此行
untangleGame.levels = client.responseText;
与
untangleGame.levels = JSON.parse(client.responseText);
而且你需要早点入住if condition
if (client.readyState == 4 && client.status == 200)
{
alert(client.responseText);
untangleGame.levels = JSON. parse (client.responseText) ;
}
您遇到错误
Uncaught TypeError: Cannot read property '0' of undefined
因为如果您在 client.responseText 之外的 if-condition 之外这样做,您的值可能尚未填充。
试试这个:
loadDoc('/KB/canvasAts/levels.txt', function (response) {
untangleGame.levels = JSON.parse(response) ;
});
function loadDoc(fileName, callback) {
var client = new XMLHttpRequest();
client.overrideMimeType("application/json");
client.open('GET', fileName, true);
client.onreadystatechange = function () {
if (client.readyState == 4 && client.status == "200") {
callback(client.responseText);
}
};
client.send(null);
}
在我的程序中我有一个变量
untangleGame.levels =
[
{
"level" : 0,
"circles" : [{"x" : 400, "y" : 156},
{"x" : 381, "y" : 241},
{"x" : 84, "y" : 233},
{"x" : 88, "y" : 73}],
"relationship" : {
"0" : {"connectedPoints" : [1,2]},
"1" : {"connectedPoints" : [0,3]},
"2" : {"connectedPoints" : [0,3]},
"3" : {"connectedPoints" : [1,2]}
}
},////////****** More Levels****///////
]
而且我必须将这个变量存储在文本文件中。我创建了一个函数
function loadDoc() {
var client = new XMLHttpRequest();
client.open('GET', '/KB/canvasAts/levels.txt');
client.onreadystatechange = function() {
if (client.readyState == 4 && client.status == 200)
{
untangleGame.levels = JSON. parse (client.responseText) ;
}
}
client.send();
}
警报功能显示文本,但变量仍未设置,我在第 var level = untangleGame.levels[untangleGame.currentLevel];
您需要将文本解析为 JSON。
替换此行
untangleGame.levels = client.responseText;
与
untangleGame.levels = JSON.parse(client.responseText);
而且你需要早点入住if condition
if (client.readyState == 4 && client.status == 200)
{
alert(client.responseText);
untangleGame.levels = JSON. parse (client.responseText) ;
}
您遇到错误
Uncaught TypeError: Cannot read property '0' of undefined
因为如果您在 client.responseText 之外的 if-condition 之外这样做,您的值可能尚未填充。
试试这个:
loadDoc('/KB/canvasAts/levels.txt', function (response) {
untangleGame.levels = JSON.parse(response) ;
});
function loadDoc(fileName, callback) {
var client = new XMLHttpRequest();
client.overrideMimeType("application/json");
client.open('GET', fileName, true);
client.onreadystatechange = function () {
if (client.readyState == 4 && client.status == "200") {
callback(client.responseText);
}
};
client.send(null);
}