Nic*_*ick 13 javascript jquery
我很好奇是否有办法在javascript中专门检测浏览器刷新事件.我们使用jQuery.address插件为AJAX函数提供前进和后退按钮功能.我面临的问题是这个插件似乎没有检测到用户是否刷新了页面.
每次用户在浏览器历史记录中前进或后退时,都会执行此代码.我还希望它在用户刷新时执行.
$.address.init(function(event) {
}).change(function(event) {
SummaryDiv.SwapPanels(newPanelID);
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
沿着这些方向,我有一个页面,其行为我不想重复刷新,所以我按照这个答案中的描述以编程方式更改了哈希.
checkRefresh: function() {
if (document.location.hash === '#visited') {
console.log('Refreshed');
return true;
} else {
document.location.hash = 'visited';
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
我发现,如果刷新自动发生,至少Mobile Safari会忽略散列(例如,在再次查看之前,页面数据从缓存中清除).我最终使用了这里描述的更复杂的解决方案.