我继承了一个在窗口弹出窗口中实现禁用F5的应用程序。
<body onkeydown="disableF5();">
但是,如果用户点击窗口中的正文下方并按下F5,页面仍会刷新。
我将函数调用移到了
<html onkeydown="disableF5();">
现在F5已禁用,一切正常运行。
然而,这不是拥有代码的最佳位置,如果我可以在<script>
部分执行类似下面的操作,我会更喜欢它,这样我就可以添加注释并将其移动到外部文件中。
$("html").attr("onkeydown", "disableF5();");
这个jQuery片段没有按预期工作,但是我现在正陷入困境。
有没有办法设置<html>
元素的属性?
编辑:我以为我会在这里抛出disableF5()函数。
function disableF5() {
if (window.event && window.event.keyCode == 116) {
window.event.cancelBubble = true;
window.event.returnValue = false;
window.event.keyCode = 0;
window.status = "F5 is disabled on all popups";
return false;
}
}
答案 0 :(得分:2)
$('html').bind('keydown', function(){ disableF5(); });
编辑 - 中等详细说明:
在加载DOM时评估HTML onstuff
属性。事后添加它们没有任何影响。因此,必须使用正确的JS事件绑定。
答案 1 :(得分:2)
这适用于最新的Chrome和FireFox,对我来说似乎比bind
更清晰:
$(document.documentElement).keydown(disableF5);
答案 2 :(得分:1)
$('html').bind('keydown', function() { disableF5(); }));