主窗口
function hasOpened() { // 窗口成功打开后会执行该回调, 清除定时器
clearTimeout(timer);
}
window.open('xxx', '_blank'); // 打开新窗口
var timer = setTimeout(function() { // 假设1秒内窗口还没能打开即窗口被屏蔽
alert('被屏蔽了!');
}, 1000);
新开窗口
window.opener.hasOpened(); // 放在新窗口的head里面, 打开后立即会执行
要判断open方法所打开的窗口时,就按 open()的值来进行判断。如果要判断原窗口被屏蔽, 用opener属性来判断, opener.closed如果为true, 就是主窗口关闭了。
获取open()的返回值,如果是null,就是屏蔽了