我有代码,我想返回直接文本,已从文本文件中读取(在本例中恰好是JSON,但可能并不总是将来),我只想将结果传回去来自函数调用。文本或其部分最终将显示在网页上。见下一段代码...
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>Not Working Example</title>
</head>
<body onload="myfunction()">
<div id="demo1" onclick="loadDoc()">demo1</div>
<div id="demo2" onclick="loadDoc()">demo2</div>
<div id="demo3" onclick="loadDoc()">demo3</div>
<script>
var dataString = "Test";
function loadDoc() {
var string = readDoc("TestData.json");
document.getElementById("demo2").innerHTML = string;
document.getElementById("demo3").innerHTML = dataString;
}
function readDoc(fileName) {
var fReader = new XMLHttpRequest();
fReader.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
dataString = this.responseText;
document.getElementById("demo1").innerHTML = this.responseText;
}
};
fReader.open("GET", fileName, true);
fReader.send();
}
</script>
</body>
</html>
我正在尝试创建一个只返回数据字符串的函数(readDoc)(参见第14行),但是我遇到了将responseText传递给全局变量或者返回到第14行和第14行调用的结果的问题。第22行。我做错了什么? 与第24行不同,我不想直接写入HTML元素,因为我想在显示之前首先操作数据(在单独的函数中)。 “TestData.json”的(暂时简单的)示例是......
{
"DataValue": 33
}
我尝试过很多不同的排列,但似乎无法获得理想的结果。有些'genioid'会说“啊,很容易看起来这个白痴做错了。”但是我看不到树林里的树林。
答案 0 :(得分:0)
readDoc真的得到了结果吗?你检查结果了吗?你能检查一下console.log或alert吗?
我认为问题是您需要隐藏类型输入结果,但最好先确保在readDoc中获得所需的结果。