如何在离开页面时使用Jquery显示弹出式调查

时间:2011-11-14 07:56:00

标签: javascript jquery asp.net-mvc-3 popup

我想在用户离开页面时在弹出窗口中显示调查。

所以我只想在他回答所有调查问题和/或关闭弹出窗口时离开页面......我该怎么做?

我试试这段代码

$(document).ready(function () {
        function exitpop() {
            my_window = window.open("http://www.google.com", "mywindow1", "status=off,toolbar=off,location=off,menubar=off,directories=off,resizable=off,scrollbars=off,height=800,width=800");
            });
        }
        $(window).unload(function () {
            exitpop();
        });
    });

但它阻止了大多数浏览器,并且不会暂停点击操作(转到其他页面或关闭窗口)。 最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

尝试使用window.onbeforeunload事件..

从以下代码段中了解一下。我在离开页面之前使用这种类型的代码确认使用..意味着它是关闭标签或刷新页面...

但你必须追踪它何时刷新或关闭..两者都意味着与beforeunload相同.. 您无法直接使用它们unloadbeforeunload - 它们在窗口关闭之间没有差异,请尝试根据您的要求进行操作。

http://docs.jquery.com/Events/unload#fn

jQuery的:

$(window).unload( function () { alert("Bye now!"); } );

or javascript:

window.onunload = function(){alert("Bye now!");}

有关更多信息,请按以下步骤操作 https://developer.mozilla.org/en/DOM/window.onclose

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript">
    function confirmBeforeUnload(e) {
        var e = e || window.event;

        // For IE and Firefox
        if (e) {
            e.returnValue = 'Any string';
        }

        // For Safari
        return 'Any string';

    }
    function goodbye(e) {
        if (!e) e = window.event;
        //e.cancelBubble is supported by IE - this will kill the bubbling process.
        e.cancelBubble = true;
        e.returnValue = 'You sure you want to leave?'; //This is displayed on the dialog

        //e.stopPropagation works in Firefox.
        if (e.stopPropagation) {
            e.stopPropagation();
            e.preventDefault();
        }
    }
    window.onbeforeunload = goodbye;
    </script>
    <title>Untitled Document</title>
    </head>

    <body>
    </body>
    </html>

以模态进行交互的公开调查内容...按照这些链接在您的页面上创建模态弹出窗口..

http://choosedaily.com/1178/15-jquery-popup-modal-dialog-plugins-tutorials/

http://www.queness.com/post/77/simple-jquery-modal-window-tutorial - 按照此步骤教程,使用代码创建模态弹出窗口。

答案 1 :(得分:0)

是否有必要让用户填写调查表?如果没有,那么您可以替换正文的内容,以便用户在后台看到它。

var done = 0;
window.onbeforeunload = function() {
  if (done != 1) {
    done = 1;
    document.getElementsByTagName('body')[0].innerHTML = "new content goes here";
    return "Howdy there. Why don't you stick around for a moment and take our survey?";
  }
}