我正在尝试加载 facebook 授权页面,以便用户将他们的 fb 帐户连接到我的网站。问题是它是一个不同的域。代码如下
var left = (screen.width/2)-(550/2);
var top = (screen.height/2)-(250/2);
fbPopUp = window.open(authorizeURL,'fbWindow','menubar=0,status=0,titlebar=0,toolbar=0,resizable=1,width=400,height=275, top='+top+' , left='+left);
我如何知道这个窗口是否真的打开了? 我尝试了 Detect blocked popup in Chrome 的解决方案
最佳答案
基本上 Chrome 中存在一个错误。虽然它隐藏了弹出窗口,但它仍然会执行并且您仍然会取回窗口对象 - 因此常规检查不起作用。
这是对我有用的解决方案:
var popup = window.open(url);
if (popup) {
popup.onload = function () {
console.log(popup.innerHeight > 0 ? 'open' : 'blocked');
}
} else {
console.log('blocked');
}
这里的工作示例:http://jsbin.com/uticev/3/
关于javascript - 如何检测弹出窗口是否在 chrome 中被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8802409/