wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用window.onbeforeunload事件中的window.event.keyCode在javascript中捕获f5 keypress事件始终为0而不是116大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在创建一个MVC应用程序.在关闭应用程序(即窗口/选项卡)时,将会话中的变量设置为null,但在刷新应用程序时却没有. 我通过以下代码尝试了它. <script type="text/javascript"> window.onbeforeunload = function (E) { e = e || window.event;
我正在创建@L_827_0@mVC应用程序.在关闭应用程序(即窗口/选项卡)时,将会话中的变量设置为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按键也变为空,这不是我的要求.

即使当应用程序(即网页)关闭时,即使它是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

大佬总结

以上是大佬教程为你收集整理的使用window.onbeforeunload事件中的window.event.keyCode在javascript中捕获f5 keypress事件始终为0而不是116全部内容,希望文章能够帮你解决使用window.onbeforeunload事件中的window.event.keyCode在javascript中捕获f5 keypress事件始终为0而不是116所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。