jQuery:为什么IE8在调用.load()期间没有发送请求?

时间:2011-02-10 02:41:23

标签: ajax internet-explorer jquery

我正在尝试使用哈希符号来启用我的AJAX Web应用程序中的后退按钮和刷新功能。

在Firefox和Chrome中,当我点击刷新时,浏览器会正确重新加载所有内容,当运行以下脚本时,会使用#符号后面显示的网址发出新请求。

在IE8中,请求永远不会在刷新期间生成,但警报会弹出,就像它有!我可以在这里发布的简化HTML文档中重现这种行为:

完整的HTML文档 http://pastebin.com/CVySwtup

示例代码

$(document).ready(function () {
    // 1. AJAX history & back button
    $(window).bind("hashchange", function (e) {
        if (!ignoreHashChange) {
            // Load content
            $("#content").load(location.hash.substring(1), function () {
                alert("content loaded!");
            });
        }
        ignoreHashChange = false;
    });

    // 2. Home page / refresh action
    if (location.hash) {
        $(window).trigger("hashchange");
    } else {
        location.hash = "Customers/List";
    }
});

编辑:使用$ .get()

时,I​​E8中的行为相同

1 个答案:

答案 0 :(得分:2)

IE可能正在从其本地缓存中读取内容。有关详细信息和解决方法,请参阅jQuery's .load() not working in IE - but fine in Firefox, Chrome and Safari