0

我有一个添加 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>
4

1 回答 1

1

它与 return false 语句无关。你的问题是 innerText 只是 IE。关于跨浏览器解决方案的另一个stackoverflow 帖子。

于 2012-10-10T20:31:29.470 回答