仅在关闭浏览器而不是单击保存按钮或使用javascript导航离开页面时提示?

时间:2012-12-02 04:23:59

标签: javascript

如何在用户在文本框中输入内容并在不知不觉中关闭浏览器时提示?

此外,如果用户未在输入字段中键入任何内容并且关闭浏览器,则浏览器应在不提示的情况下关闭。仅当用户在字段中更改了某些内容时,浏览器才会提示。如果我使用onbeforeunload事件,即使在保存页面时它也会提供所有内容。有没有办法在javascript中解决我的问题。请帮我给我一些密码。

2 个答案:

答案 0 :(得分:2)

点击此链接:http://www.4guysfromrolla.com/webtech/100604-1.shtml

它为您提供有关如何处理onbeforeunload事件的信息。

这个想法是在页面上有一个全局标志。对字段进行任何更改时,此标志设置为true。单击“保存”按钮时,此标志需要设置为false。

在onbeforeunload事件中,检查该标志是否为true,然后相应地显示该消息。

var needToConfirm = true;

window.onbeforeunload = confirmExit;
function confirmExit()
{
    if (needToConfirm)
    {
        // check on the elements whether any change has been done on the fields.
        // If any change has been done, then set message here.
    }
}

function saveClicked()
{
    needToConfirm = false;
}

另一种做事的方法是在通过onchange事件对字段进行任何更改时设置needToConfirm标志。

答案 1 :(得分:2)

您可以使用window.onbeforeunload
您可以检查用户是否输入了任何文本,如果是,则只返回要提示的消息。

var hook = false; //

window.onbeforeunload = function() {
    var x = $('#box').val();
    if (x.length > 1) { //check is user has entered text
        hook = true;
    }

    if (hook) { //return message if there is text
        hook = false; //reset hook
        return "Did you save your work?"
    }
}​

Read more about window.onbeforeunload here
Here is a link to a demo