我正在尝试编写一个触发 window.open(url) 等的 onbeforeunload 事件。我希望在用户尝试离开页面或关闭浏览器时触发它,但不是在单击任何按钮时触发这页纸。页面上的按钮通过 javascript 将数据发布到同一页面。
javascript:
window.onbeforeunload = doSync;
function doSync(){
if(doSync == true){
//do sync via popup
window.open("http://mydomain.com/page.php?var=<?php=sync_var?>", "Synchronizing cluster....", "location=0,menubar=0,statusbar=1,width=10,height=10");
}
else {
//somehow do nothing and allow user to leave
}
}
-->
</script>
按钮调用创建表单并提交表单的 javascript 函数。在那个 javascript 函数中,我设置了 doSync = false 的全局变量。我将包含这个函数的基本代码只是为了说明它。
function buttonPush(){
var form = document.createElement('form');
form.setAttribute('method' bla bla
//before submit set dosync to false
doSync = false;
form.submit();
}
现在我在window.onbeforeunload = doSync ; 陈述。
任何帮助,将不胜感激。
谢谢,
吉姆
我的 window.open 有问题吗?如果我做一个window.open('','','height=100,width=100');
它打开得很好,但下面没有。
window.open('https://mydomain.com/support/sync_cluster.php?sync_cluster=mycluster','Synchronizing...', 'toolbar=0,scrollbars=0,location=0,statusbar=1,menubar=0,resizable=0,width=100,height=100');