0

たぶん私の質問は非常に単純ですが、私はHTMLとJavaScriptに不慣れです。

window.close()window.stop( )を学びたい、

そこで、簡単なHTMLページで試してみました。しかし、問題があります。タグで関数を使用しています。また、window.stop()は操作を停止しません。確認ダイアログが真でない場合、リダイレクトを停止したい。この問題を解決するにはどうすればよいですか?

HTMLファイル:

<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 に移動しません。

ユーザーが [OK] をクリックした場合、単純にデフォルトのナビゲーション (この例では 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 に答える