5

promptとを使用する JavaScript を含む次の HTML スニペットを考えてみましょうunload。メソッドは正常に機能しますが、ページをリロードしたり離れたりするときに、さようなら、ユーザーなどのprompt()警告が必要です。どんな助けでも大歓迎です。

<body onload="promptName()" >


        <script type="text/javascript">
        function promptName()
        {
            var userName = prompt("What's your name ?", "")
            return userName;
        }

        function goodBye()
        {
            alert("Goodbye, " + promptName() + "!");
        }

        window.onunload = goodBye();

        </script>

  </body>
4

6 に答える 6

12

次のように記述します。

window.onunload = goodBye;

また、一部のブラウザーで onbeforeunload イベントを使用することを検討することもできます。

window.onbeforeunload = goodBye;

記述するときwindow.onunload = goodBye();は、返されるハンドラーをイベントに割り当てgoodByeますunload。何も返されないため、イベント ハンドラはありません。代わりに関数を参照する必要があります。window.onunload = goodBye;

于 2012-03-28T12:53:25.000 に答える
3

このように評価することはできません: window.onunload = goodBye();

このように評価したい場合は、次の 3 つの方法があります。

// by this way you use the name of the function, so you override the onunload function with goodBye function
window.onunload = goodBye;

また

  // This way you redefine the function
    window.onunload = function(){goodBye()};

そして、より多くの機能を追加できるので、私のお気に入りです:

// This way you create a event listener which allows you to add as many functions as you ant
window.addEventListener("unload", goodBye, false); 
于 2012-03-28T12:59:18.950 に答える
1

ここで見られるよう

window.onbeforeunload = function() {
    alert("Goodbye, " + promptName() + "!");
};

また

window.onbeforeunload = goodBye;

ユーザー名をグロブに保存することをお勧めしますが、最初のプロンプトの後にユーザー名を受け取る関数をロードする外部で var を設定することをお勧めします。

于 2012-03-28T12:53:31.380 に答える
1

次のようなことができます。

var userName = ""; 

function promptName()
{
    userName = prompt("What's your name ?", "")
    return userName;
}

function goodBye()
{
   alert("Goodbye, " + userName  + "!");
}

window.onload=promptName();     
window.onbeforeunload = goodBye();
于 2012-03-28T12:58:48.710 に答える
1
<body onload="promptName()" >


        <script type="text/javascript">
        function promptName()
        {
            var userName = prompt("What's your name ?", "")
            return userName;
        }



        window.onbeforeunload = function() {
    alert("Goodbye, " + promptName() + "!");
}
        </script>

  </body>

onbeforeunload

于 2012-03-28T12:51:31.400 に答える