gpt4 book ai didi

javascript - 在 window.onbeforeunload 事件中使用 window.event.keyCode 在 javascript 中捕获 f5 按键事件始终为 0 而不是 116

转载 作者:数据小太阳 更新时间:2023-10-29 03:58:55 24 4
gpt4 key购买 nike

我正在创建一个 MVC 应用程序。有必要在关闭应用程序(即窗口/选项卡)时将 session 中的变量设置为 null,而不是在刷新应用程序时。我通过下面的代码试了一下。

<script type="text/javascript">
window.onbeforeunload = function (e) {
e = e || window.event;
if (window.event.keyCode == 116) {
alert("f5 pressed");
}
else {
alert("Window closed");
//call my c# code to make my variable null, eg:Session["myVariable"] = null;
}
};
</script>

但是当按下 F5 时,“window.event.keyCode”总是 0 而不是 116。因此,即使按下 F5 键,我的变量也会变为 null,这不是我的要求。

即使应用程序(即网页)关闭,它仍然为 0(这可能是正确的)。

请注意以上部分代码在.cshtml文件中。

谁能告诉我哪里错了?

最佳答案

如果你想让它在crossborwser上工作,你必须监听不同的事件+你必须在每次按下时监听按键事件,而不是加载时:

document.onkeydown = fkey;
document.onkeypress = fkey
document.onkeyup = fkey;

var wasPressed = false;

function fkey(e){
e = e || window.event;
if( wasPressed ) return;

if (e.keyCode == 116) {
alert("f5 pressed");
wasPressed = true;
}else {
alert("Window closed");
}
}

这是一个演示:http://jsfiddle.net/FSrgV/1/embedded/result/

但是如果您只是想知道用户是否退出了页面,您可以简单地使用window.onbeforeunload:https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeunload

关于javascript - 在 window.onbeforeunload 事件中使用 window.event.keyCode 在 javascript 中捕获 f5 按键事件始终为 0 而不是 116,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14707602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com