0

也许我的问题很简单,但我是 HTML 和 JavaScript 的新手。

我想学习window.close()window.stop()

所以我在一个简单的 HTML 页面中尝试了它。但是有一个问题,我在标签中使用我的函数。并且window.stop()不会停止操作。如果确认对话框不正确,我想停止重定向。我该如何解决这个问题?

文件:

<html>
<head>
    <title> My page </title>    
    <script src="my_javascript_file.js"></script>   
</head>
<body>

    <a href = "http://www.google.com" onclick="whereAreYouGoing()">Go</a>
    
</body>
</html>

my_javascript_file.js:

function whereAreYouGoing(){
    
    var exit = confirm("Are You Want to Sure to Leave?");
    
    if(exit){
        window.close();
    }
    
    else
        window.stop();

}
4

2 回答 2

2

那不是window.stop()目的。

由于您使用的是内联onclick处理程序,您可以通过返回来阻止默认的锚导航false

<a href = "http://www.google.com" onclick="return whereAreYouGoing()">Go</a>

function whereAreYouGoing(){
    var exit = confirm("Are You Want to Sure to Leave?");
    if(exit){
       window.close();
    } else {
       return false;
    }
}

虽然window.close()会尝试关闭当前窗口 - 在大多数浏览器中,除非首先通过 JavaScript 打开当前窗口,否则这将不起作用。如果它确实有效,那么它显然不会导航到指定的 URL。

如果用户单击确定,则简单地允许默认导航(在您的示例中为 google.com)更有意义:

function whereAreYouGoing(){
    return confirm("Are You Want to Sure to Leave?");
}
于 2012-11-24T05:15:44.887 回答
1

试着放

 
  window.onbeforeunload = whereAreYouGoing;
 

在 javascript 代码的开头。
onbeforeunload 总是在窗口关闭之前运行;因此,如果您将函数连接到它,它将在关闭窗口之前调用该函数。
尽管这会在关闭窗口之前向用户显示对话框,但所有浏览器都为用户提供了覆盖该功能的机会;这意味着如果用户想要关闭窗口,浏览器将关闭窗口,即使您的函数试图阻止这种情况发生。

希望这可以帮助。

于 2012-11-24T05:16:50.323 回答