我继承了一个实现在弹出窗口中禁用 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;
}
}
最佳答案
$('html').bind('keydown', function(){ disableF5(); });
编辑 – 适度冗长的解释:
HTML onstuff
属性在加载 DOM 时进行评估。事后添加它们没有任何效果。因此,必须使用适当的 JS 事件绑定(bind)。
关于jquery - 如何在 html 元素上重写 onkeydown?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7896660/