javascript - 如何确定javascript中window.onbeforeunload中的哪个控件导致了该事件

标签 javascript asp.net html

我已经在javascript中设置了:

var    onBeforeUnloadFired = false;

window.onbeforeunload = function (sender, args)

{
   if(window.event){
      if(!onBeforeUnloadFired) {
         onBeforeUnloadFired = true;
         window.event.returnValue = 'You will lose any unsaved changes!'; //IE
      }
   }
   else {
      return 'You will lose any unsaved changes!'; //FX
   }

   windows.setTimeout("ResetOnBeforeUnloadFired()", 1000);
}

function ResetOnBeforeUnloadFired() {
   //Need this variable to prevent IE firing twice.
   onBeforeUnloadFired = false;
}

我正在尝试实现一个编辑屏幕,用户在离开之前会收到警告。它工作正常,除了我弹出按钮点击的正常回发。我希望避免这种情况,所以我想知道是否可以确定按下哪个按钮就可以了。

有人知道如何确定在 windows.onbeforeunload 中按下了哪个按钮吗?

或者有人知道更好的方法来实现我想要实现的目标吗?

最佳答案

通过将所有编辑项文本框等放入更新面板来解决此问题。

现在 windows.onbeforeunload 只会针对其外部的组件触发。

关于javascript - 如何确定javascript中window.onbeforeunload中的哪个控件导致了该事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5215615/

相关文章:

javascript - React Native - 在 Javascript Promise 中显示加载屏幕组件

javascript - 如何在 Javascript 类内部创建类

c# - onclick 时清除登录控件中的文本框

django - 为什么 TinyMCE 在 (django) {% %} 标签之间插入 <span> </span>?

javascript - 为什么 jQuery/JavaScript (classname or id).value.length 在验证用户名时不起作用?

html - Flexbox 列将元素对齐为相同宽度但居中,无需包装(仅限 css)

javascript - 如何访问在另一个 js 文件中的 react Hook 中完成的状态值

javascript - jquery点击外部时隐藏div

javascript - ASP.NET JQuery - jQuery.Deferred 异常 : $ is not a function

mysql - 配置 ASP.NET Identity 以使用 MySQL