我有一个站点,我想在其中覆盖 F5,这样它就不会刷新页面,而是执行一些 ajax 调用来刷新某些部分。这可能吗?
编辑:因为你们似乎都不明白为什么我想做这样的事情,如果您真的感兴趣,请访问这些链接:
开源项目(简单的网络终端): http://code.google.com/p/web-terminal
运行简单网络终端的演示: http://web-terminal.net.pine.arvixe.com
现场执行(论坛版): http://www.u413.com
最佳答案
好吧,你可以这样做(至少在某些浏览器中,我不确定这是否适用于跨浏览器),但这确实会是一个非常糟糕的用户体验。
$(document).bind('keypress keydown keyup', function(e) {
if(e.which === 116) {
console.log('blocked');
return false;
}
if(e.which === 82 && e.ctrlKey) {
console.log('blocked');
return false;
}
});
无论如何,即使这样可行,用户也可以通过其他方式刷新网站。按 ctrl + r
(cmd + r
) 或直接点击刷新按钮。好吧,其他热键组合可以类似地被阻止,但无法阻止刷新按钮。
--
最好不要阻止这些默认的浏览器行为,而是优雅地询问。这可以通过将事件处理程序绑定(bind)到 onbeforeunload
事件来完成,该事件在网站卸载之前触发。
$(window).bind('beforeunload', function() {
return 'Are you really sure?';
});
关于jquery - 在 JQuery 中处理 F5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4788201/