我正在尝试在浏览器窗口/选项卡上添加一个带有确定/取消的调查确认框关闭。 我需要在Ok按钮点击时将用户重定向到调查链接。
尝试使用以下代码实现相同的功能。
var leave_message = 'Wait! Would you like to respond to a quick Survey?'
function bye(e) {
if (!e) e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) {
e.stopPropagation();
e.preventDefault();
}
e.returnValue = leave_message;
if (confirm(leave_message)) {
window.open("www.surveylink.com");
}
}
window.onbeforeunload = bye;
请建议上面的代码不起作用。
答案 0 :(得分:1)
使用此功能强制您的用户访问您的网站,这是您可以做的事情除此之外的任何事情都是不可能的。
$(window).bind('beforeunload', function() {
window.open("http://www.surveylink.com");
return 'Do you really want to leave?' ;
});
答案 1 :(得分:1)
onbeforeunload
不是常规活动。如果在onbeforeunload
事件处理程序中返回一个字符串,则会生成一个要求您保留在页面上的对话框。如果用户点击"留在页面"该对话框中的按钮,中止卸载页面。 (更多细节,例如,https://developer.mozilla.org/en-US/docs/Web/API/Window.onbeforeunload)
我解决这个问题的方法是设置一个变量,指示页面开始卸载,然后定期检查该变量以确定卸载是否中止:
(function () {
var triedToUnload = false;
window.onbeforeunload = function (e) {
triedToUnload = true;
return "Wait! Would you like to respond to a quick Survey?";
};
window.setInterval(function () {
if (triedToUnload) {
window.open("www.surveylink.com");
}
}, 500);
}());