把一个方法以参数的形式,作为内部函数,是另一种解决问题的角度。
this关键字,只有在onload的回调函数内部有效。
<!DOCTYPE html>
<html>
<body>
<div id="demo" />
<script>
function myDisplayer(some) {
document.getElementById("demo").innerHTML = some;
}
function loadXMLDoc() {
var req = new XMLHttpRequest();
req.onload = function(){myDisplayer(this.responseText)};
req.open("GET", "http://localhost:8888/rest/order/1", true);
req.send();
}
loadXMLDoc();
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<div id="demo" />
<script>
function myDisplayer(some) {
document.getElementById("demo").innerHTML = some;
}
function loadXMLDoc() {
var req = new XMLHttpRequest();
// req.onload =();
req.onreadystatechange = (function() {
if (this.readyState == 4 && this.status == 200) {
myDisplayer(this.responseText);
} else {
myDisplayer("Error: " + req.status);
}
});
req.open("GET", "http://localhost:8888/rest/order/1", true);
req.send();
}
loadXMLDoc();
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<div id="demo" />
<script>
function myDisplayer(some) {
document.getElementById("demo").innerHTML = some;
}
function loadXMLDoc(myCallback) {
var req = new XMLHttpRequest();
// req.onload =();
req.onreadystatechange = (function() {
if (this.readyState == 4 && this.status == 200) {
myCallback(this.responseText);
} else {
myCallback("Error: " + req.status);
}
});
req.open("GET", "http://localhost:8888/rest/order/1", true);
req.send();
}
loadXMLDoc(myDisplayer);
</script>
</body>
</html>