我正在尝试使用哈希符号来启用我的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()
时,IE8中的行为相同答案 0 :(得分:2)
IE可能正在从其本地缓存中读取内容。有关详细信息和解决方法,请参阅jQuery's .load() not working in IE - but fine in Firefox, Chrome and Safari。