C# 如何使beforeunload事件仅在浏览器会话退出时触发

C# 如何使beforeunload事件仅在浏览器会话退出时触发,c#,javascript,asp.net,internet-explorer,C#,Javascript,Asp.net,Internet Explorer,免责声明-我应该注意到我的JavaScript非常弱 我正在将代码插入我的网站,这样它就可以覆盖一个场景,当用户退出浏览器时,他会收到一个谚语“你确定要退出吗?”之类的确认消息 我正在尝试在我的网站上实现这段JavaScript: <script language="JavaScript" type0"text/javascript"> var foo = true; window.onbeforeunload = askBeforeExiting; function a

免责声明-我应该注意到我的JavaScript非常弱

我正在将代码插入我的网站,这样它就可以覆盖一个场景,当用户退出浏览器时,他会收到一个谚语“你确定要退出吗?”之类的确认消息

我正在尝试在我的网站上实现这段JavaScript:

   <script language="JavaScript" type0"text/javascript">

var foo = true;

window.onbeforeunload = askBeforeExiting;

function askBeforeExiting() {
  if (foo)
    return "Are you sure you want to leave this page?";
}
</script>

var foo=真;
window.onbeforeunload=askbeforexiting;
函数askbeforexiting(){
如果(foo)
return“您确定要离开此页吗?”;
}
该代码不仅在尝试退出浏览器时抛出确认消息。但是,当单击指向站点另一部分的链接和其他相关事件时,它也会抛出确认

是否有办法修改此代码以仅捕获浏览器关闭场景?我发现这样的场景,比如无法捕获从任务管理器或powershell命令杀死浏览器。我只想了解当前用户会话中可能退出浏览器的场景


我一直在网络上和代码引用中查看各种示例,但似乎无法准确跟踪我想要做的事情。这可能吗?

我以前在页面有表单的地方做过,我只想在表单发生更改时请求用户确认。您可以执行类似的操作,例如,将单击事件附加到所有链接,从而将foo设置为false。比如:

var links = document.getElementsByTagName('a');
for(var i = 0, l = links.length; i < l; i++) {
    links[i].onclick = function () {
        foo = false;
    }
}
var links=document.getElementsByTagName('a');
对于(变量i=0,l=links.length;i

编辑:根据您的站点,您可能需要考虑许多其他操作,但是根据所提供的信息,这对您来说应该是一个良好的开端,因为没有直接的方法来完成您所要完成的任务。

表单提交、页面刷新等如何。是的,这只处理链接。我试图展示一个如何做到这一点的示例,而不是OP必须说明的所有可能操作的详尽列表。@Duffmaster33是否有可能操作的列表?我似乎找不到一个,但是W3学校有一个关于卸载的最可能的例子:关闭窗口,在我看来,提交表单、刷新页面和单击链接是最常见的做法。@duffmaster33这就是您所指的列表吗?