Javascript onload和onunload

时间:2012-03-28 12:49:31

标签: javascript html onload onunload

请考虑以下HTML代码段,其中包含一些使用promptunload的JavaScript。 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>

6 个答案:

答案 0 :(得分:12)

你应该这样写:

window.onunload = goodBye;

另外,您可以考虑在某些浏览器中使用onbeforeunload事件:

window.onbeforeunload = goodBye;

当您编写window.onunload = goodBye();时,您将从goodBye返回的任何处理程序分配给unload事件。由于没有返回任何内容,因此不会有事件处理程序。您需要引用该函数:window.onunload = goodBye;

答案 1 :(得分:3)

你无法这样说:window.onunload = goodBye();

如果你想这样做,你有三种方法:

// 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); 

答案 2 :(得分: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

答案 3 :(得分:1)

HERE

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

window.onbeforeunload = goodBye;

虽然我建议通过在外面设置一个var来保存用户名,然后加载在第一次提示后收到用户名的func,然后你不必在他们离开时再次提示他们的名字

答案 4 :(得分:1)

你可以这样做:

var userName = ""; 

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

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

window.onload=promptName();     
window.onbeforeunload = goodBye();

答案 5 :(得分:0)

这对我有用,但接受的答案却没有。这也支持更多浏览器事件。

这也可以与各种onbeforeunloadbeforeunload脚本一起使用。

var doOnUnload = window.attachEvent || window.addEventListener;
var eventType = window.attachEvent ? 'onunload' : 'unload';

doOnUnload(eventType, function(e) 
{
    console.log('godbye');
});