我很好奇是否有办法在javascript中专门检测浏览器刷新事件。我们使用jQuery.address插件为AJAX函数提供前进和后退按钮功能。我面临的问题是,这个插件似乎无法检测用户是否刷新了页面。
每次用户在浏览器历史记录中前进或后退时,都会执行此代码。我还希望它在用户刷新时执行。
$.address.init(function(event) {
}).change(function(event) {
SummaryDiv.SwapPanels(newPanelID);
}
有什么想法吗?
答案 0 :(得分:5)
我的一个天真的尝试是在每次更改后简单地将当前状态存储到某个cookie中,然后在每次页面加载时再次加载它们。
答案 1 :(得分:5)
沿着这些方向,我有一个页面,如果刷新我不想重复的行为,所以我按照this answer中的描述以编程方式更改了哈希。
checkRefresh: function() {
if (document.location.hash === '#visited') {
console.log('Refreshed');
return true;
} else {
document.location.hash = 'visited';
return false;
}
}
<强>更新强>
我发现,如果自动刷新,至少Mobile Safari会忽略哈希值(例如,在再次查看之前,页面数据从缓存中清除)。我最终使用了更复杂的解决方案described here。
答案 2 :(得分:4)
在网上找到你...
同时使用javascript聪明的方法和Cookie方法。
http://www.tedpavlic.com/post_detect_refresh_with_javascript.php
答案 3 :(得分:1)
在页面刷新时,javascript也会重新加载。那么你不能直接在jQuery的ready方法中指定你想要发生什么吗?
答案 4 :(得分:1)