2つの数字を追加する単純なajaxページがあります。
IEで実行すると、非同期コールバックが機能します。
Firefoxで実行すると、機能しません。
Firebugで正しい戻り値を取得しましたが、FirefoxではlblSumが空白のままです。
これは、btnAddクリックハンドラーの最後にfalseが返されることと関係があります。
Javascriptが無効になっている場合に備えて、サーバー側のハンドラーがあるため、Javascriptに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>