Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在离开页面时使用Jquery显示弹出式调查_Javascript_Jquery_Asp.net Mvc 3_Popup - Fatal编程技术网

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

Javascript 如何在离开页面时使用Jquery显示弹出式调查,javascript,jquery,asp.net-mvc-3,popup,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

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

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

我试试这个代码

$(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();
        });
    });
但大多数浏览器都会阻止它,并且不会暂停单击的操作(转到其他页面或关闭窗口)。
最好的方法是什么?

尝试使用
window.onbeforeunload
事件

从下面的代码片段中得到一个想法。在离开页面之前,我使用此类型的代码确认使用。。表示关闭选项卡或刷新页面

但您必须跟踪刷新或关闭的时间。。这两种方法在卸载之前的含义相同。。 您不能直接使用它们,无论是
卸载
还是
卸载前
-它们在窗口关闭时没有区别,请尝试此操作,它可能会根据您的要求工作

jQuery:

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

or javascript:

window.onunload = function(){alert("Bye now!");}
有关更多信息,请参见以下内容:


函数confirmBeforeUnload(e){
var e=e | | window.event;
//适用于IE和Firefox
如果(e){
e、 returnValue='任何字符串';
}
//狩猎旅行
返回'anystring';
}
功能(e){
如果(!e)e=window.event;
//e、 IE支持cancelBubble-这将终止冒泡过程。
e、 取消气泡=真;
e、 returnValue='确实要离开吗?';//这将显示在对话框上
//e、 stopPropagation在Firefox中工作。
如果(如停止播放){
e、 停止传播();
e、 预防默认值();
}
}
window.onbeforeunload=再见;
无标题文件
在modal中打开调查内容以进行交互。。。按照这些链接在页面上创建模式弹出窗口


--使用代码按照本教程逐步创建模式弹出窗口。

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

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?";
  }
}

试试这里:无意冒犯,但你想做的事非常令人讨厌。浏览器阻止它是有原因的。绕过它不应该是你的目标。我想在弹出窗口中显示调查,然后在关闭后继续上一个操作…如果你想让用户进行调查,请在页面顶部创建一个“通知栏”。但是当用户想要离开你的页面时,不要做任何与弹出窗口相关的事情。他想离开是有原因的,让他在那个时间点填写一份调查,在很大程度上会导致用户态度不好,从而影响他以前对你的页面的感觉。@SpencerRuport我想补充一点,这并不总是非常令人讨厌的(尽管我见过的大多数应用都是令人讨厌的糟糕、愚蠢和/或垃圾网站)。在我们的例子中,管理用户的RIA应用程序中有一个巨大的web表单,其中包含多个文本区域和一系列其他表单字段。用户可能会在表单上花费20分钟,然后意外地执行某些操作,从而触发“后退”按钮、刷新或加载另一个页面。一个要求很高的功能是防止他们意外访问在未确认的情况下离开页面。没关系……但是,你知道吗,我如何代替确认消息显示带有调查的弹出窗口?在页面上创建一个包含调查内容的div。在页面加载时使其不可见。在卸载之前,将其可见性样式设置为“隐藏到可见”。然后你可以处理数据或使用jquery modal弹出插件..我正在用一些链接更新答案跟随他们..谢谢你,它真的帮助了我)
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?";
  }
}