重新加载页面时停止显示确认框-Javascript

重新加载页面时停止显示确认框-Javascript,javascript,Javascript,当用户离开某个页面时,我想请求用户确认 我知道使用javascipt的窗口可以很容易地实现。onbeforeunload 但唯一的问题是,当我重新加载页面时,它会显示一个弹出窗口(见图)。我不想在重新加载页面时显示弹出窗口。我认为弹出窗口是由web浏览器显示的,因为它显示了一条消息“您想重新加载此网站吗?”我没有在任何地方写过这条消息 以下是我的简单代码: <html> <head> <title>Script</title>

当用户离开某个页面时,我想请求用户确认

我知道使用javascipt的窗口可以很容易地实现。onbeforeunload

但唯一的问题是,当我重新加载页面时,它会显示一个弹出窗口(见图)。我不想在重新加载页面时显示弹出窗口。我认为弹出窗口是由web浏览器显示的,因为它显示了一条消息“您想重新加载此网站吗?”我没有在任何地方写过这条消息

以下是我的简单代码:

<html>
    <head>
        <title>Script</title>
        <script>
            window.onbeforeunload = function () {
                return 'Are you sure you want to leave?';
            };
        </script>
    </head>
    <body>
        hello
        <a href="http://google.com">Google</a>
    </body>
</html>

剧本
window.onbeforeunload=函数(){
return“您确定要离开吗?”;
};
你好

任何帮助都将不胜感激

编辑:

很多人说在用户离开网站时询问用户是不好的,我也完全同意这一点。但这是客户的要求,所以不能由我决定。对不起

谢谢


Parth vora

该弹出窗口是浏览器的默认弹出窗口。我认为它不能被移除。但是,您可以尝试使用javascript触发enter键。默认情况下,选择了
重新加载
,因此按enter键将单击
重新加载
并重新加载页面


我自己没有试过,但可能会成功。

该弹出窗口是浏览器的默认弹出窗口。我认为它不能被移除。但是,您可以尝试使用javascript触发enter键。默认情况下,选择了
重新加载
,因此按enter键将单击
重新加载
并重新加载页面

我自己没有试过,但可能会奏效。

这应该行得通

在chrome中,您的自定义消息不会按说明显示

自定义消息也可能不适用于Firefox:

<html>
    <head>
        <title>Script</title>
        <script>
            var navigating = false;
            window.onbeforeunload = function (e) {

                if(!navigating){
                    return null;
                }
                navigating = false;
                var e = e || window.event;

                  // For IE and Firefox
                  if (e) {
                    e.returnValue = 'àààà Are you sure you want to leave?';
                  }

                  // For Safari               
                return ' àààà Are you sure you want to leave?';
            };
            function navigate(url){
                navigating = true;
                setTimeout(function(){ window.location = url; }, 0);
            }
            window.onload = function(){
                var as = document.getElementsByTagName("a");
                var navigateToUrl = function(e){
                    var element = e.target;
                    var url = element.getAttribute("data-href");
                    navigate(url);
                };
                for(var i = 0; i < as.length; i++){
                    as[i].onclick= navigateToUrl;
                }
            }
        </script>
    </head>
    <body>
        hello
        <a href="#" data-href="http://google.com">Google</a>
    </body>
</html>

剧本
var=false;
window.onbeforeunload=函数(e){
如果(!导航){
返回null;
}
导航=假;
var e=e | | window.event;
//适用于IE和Firefox
如果(e){
e、 returnValue='你确定要离开吗?';
}
//狩猎旅行
返回“你确定要离开吗?”;
};
函数导航(url){
导航=真;
setTimeout(函数(){window.location=url;},0);
}
window.onload=函数(){
var as=document.getElementsByTagName(“a”);
var navigateToUrl=函数(e){
var元素=e.目标;
var url=element.getAttribute(“数据href”);
导航(url);
};
对于(变量i=0;i
这应该行得通

在chrome中,您的自定义消息不会按说明显示

自定义消息也可能不适用于Firefox:

<html>
    <head>
        <title>Script</title>
        <script>
            var navigating = false;
            window.onbeforeunload = function (e) {

                if(!navigating){
                    return null;
                }
                navigating = false;
                var e = e || window.event;

                  // For IE and Firefox
                  if (e) {
                    e.returnValue = 'àààà Are you sure you want to leave?';
                  }

                  // For Safari               
                return ' àààà Are you sure you want to leave?';
            };
            function navigate(url){
                navigating = true;
                setTimeout(function(){ window.location = url; }, 0);
            }
            window.onload = function(){
                var as = document.getElementsByTagName("a");
                var navigateToUrl = function(e){
                    var element = e.target;
                    var url = element.getAttribute("data-href");
                    navigate(url);
                };
                for(var i = 0; i < as.length; i++){
                    as[i].onclick= navigateToUrl;
                }
            }
        </script>
    </head>
    <body>
        hello
        <a href="#" data-href="http://google.com">Google</a>
    </body>
</html>

剧本
var=false;
window.onbeforeunload=函数(e){
如果(!导航){
返回null;
}
导航=假;
var e=e | | window.event;
//适用于IE和Firefox
如果(e){
e、 returnValue='你确定要离开吗?';
}
//狩猎旅行
返回“你确定要离开吗?”;
};
函数导航(url){
导航=真;
setTimeout(函数(){window.location=url;},0);
}
window.onload=函数(){
var as=document.getElementsByTagName(“a”);
var navigateToUrl=函数(e){
var元素=e.目标;
var url=element.getAttribute(“数据href”);
导航(url);
};
对于(变量i=0;i
我认为刷新意味着离开站点,回到站点。因此,离开网站意味着它将发出警报
我不想在重新加载页面时显示弹出窗口
,那么您想要什么。刷新后,只需像往常一样重新加载页面,无需询问用户。@Manish他希望在用户关闭选项卡时发出警报,而不是在用户刷新时发出警报tab@ParthVora无法确定用户:是否尝试刷新页面。试图关闭浏览器选项卡。试图关闭浏览器窗口。在URL栏中输入另一个URL,然后按enter键。所有这些操作都会在窗口上生成beforeunload事件,而没有任何关于事件如何触发或是什么操作触发它的更确切信息。但是,是的,当有人单击超链接时,您可以检测超链接单击并避免出现此弹出窗口。这是你现在唯一的可能。所以,对于您的确切问题,目前还没有解决方案。我认为刷新意味着离开站点并返回站点。因此,离开网站意味着它将发出警报
我不想在重新加载页面时显示弹出窗口
,那么您想要什么。刷新后,只需像往常一样重新加载页面,无需询问用户。@Manish他希望在用户关闭选项卡时发出警报,而不是在用户刷新时发出警报tab@ParthVora无法确定用户:是否尝试刷新页面。试图关闭浏览器选项卡。试图关闭浏览器窗口。在URL栏中输入另一个URL,然后按enter键。所有这些操作都会在窗口上生成beforeunload事件,而不包含任何关于