我有一个添加 2 个数字的简单 ajax 页面。
当我在 IE 中运行时,异步回调起作用。
当我在 Firefox 中运行时,它不起作用。
我在 Firebug 中得到了正确的返回值,但 lblSum 在 Firefox 中保持空白。
它与btnAdd 单击处理程序末尾的return false有关。
有一个服务器端处理程序以防 Javascript 被禁用,所以在 Javascript 中我添加了一个 return false。
<script type="text/javascript">
var pageWebForm1 = {
txt1: document.getElementById('TextBox1'),
txt2: document.getElementById('TextBox2'),
lblSum: document.getElementById('LblSum'),
btnAdd: document.getElementById('BtnAdd'),
init: function() {
this.btnAdd.onclick = function() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
xhrCallback(xhr.responseText);
}
}
xhr.open("POST", "Handler.ashx", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("x=" + pageWebForm1.txt1.value + "&" + "y=" + pageWebForm1.txt2.value);
return false;
}
}
}
pageWebForm1.init();
function xhrCallback(retval) {
pageWebForm1.lblSum.innerText = retval;
}
</script>