Javascript 阻止用户转到网站上的其他选项卡

Javascript 阻止用户转到网站上的其他选项卡,javascript,asp.net,.net,Javascript,Asp.net,.net,我不知道你如何才能做到这一点,但如果我的网站上的用户输入了一些信息,并选择了另一个链接或标签,而没有保存,我想提出一个弹出窗口,并允许他们取消该行动。如果操作被取消,我希望阻止用户转到所选链接/选项卡 你真的能做到吗?我曾考虑过使用onload javascript事件,但我不确定如何防止该操作 这是一个使用jquery的ASP.net网站。这是一个相当不完美的解决方案,但这是我能得到的最接近的解决方案 将此事件处理程序添加到页面: window.onblur = function() {

我不知道你如何才能做到这一点,但如果我的网站上的用户输入了一些信息,并选择了另一个链接或标签,而没有保存,我想提出一个弹出窗口,并允许他们取消该行动。如果操作被取消,我希望阻止用户转到所选链接/选项卡

你真的能做到吗?我曾考虑过使用onload javascript事件,但我不确定如何防止该操作


这是一个使用jquery的ASP.net网站。

这是一个相当不完美的解决方案,但这是我能得到的最接近的解决方案

将此事件处理程序添加到页面:

window.onblur = function() {
    var flag = confirm("Please don't leave!  Click OK if you really want to leave.  I hope you click cancel and stay with me.");
    if (flag) {
        window.onblur = undefined;
        alert("Ok you can leave now.  **sob**");
        //The user is leaving.  You can do a little cleanup here if you need to.
    }
}
注意:世界上没有任何解决方案会阻止用户打开另一个浏览器。或者,更好的办法是拿起手机在那里浏览。你不能强迫用户专注于你的应用


我强烈建议你重新考虑你的用户体验设计,如果它真的很脆弱,你不能让用户同时处理多个任务。

@Pointy对同一个页面有效,那么在另一个选项卡上打开怎么样?我知道一个页面无法阻止用户选择或启动另一个选项卡。如果我这样做了,我会立即报告它是一个严重的拒绝服务安全漏洞。可能是@Oscar ok wait的重复-当你说tab时,你到底在说什么?如果它是你自己页面中的一些控件,那么是的,你可以做任何你想做的事情;禁用控件、隐藏其他选项卡、威胁用户等等。但如果你说的是浏览器标签,比如单独的网站,那么就不是了。