检测useragent是否支持弹出窗口

时间:2014-12-16 15:21:42

标签: javascript popup

有没有办法检测当前用户代理是否支持使用本机javascript弹出窗口?

例如在WEB中,window.open将打开一个弹出窗口,父母将知道弹出窗口何时关闭。

但是在Iphone或Ipad中,它会在新选项卡中打开弹出窗口,父母将失去上下文。所以当新标签关闭时,父母不能听这个事件。

目前正在使用一种解决方法,是通过手动检查每个设备是否支持弹出窗口然后在我的javascript中检查用户代理是否包含在我手动检查的列表中。但我在想是否有更聪明的方法来实现这一点。

感谢。

2 个答案:

答案 0 :(得分:1)

你可以尝试这个脚本:

<Script>
var windowName = 'userConsole'; 
var popUp = window.open('/popup-page.php', windowName, 'width=1000, height=700, left=24, top=24, scrollbars, resizable');
if (popUp == null || typeof(popUp)=='undefined') {  
    alert('Please disable your pop-up blocker and click the "Open" link again.'); 
} 
else {  
    popUp.focus();// this will open popup if the browser allow it.you can do your implementation on popup support here
}
</script>

主要来源:here

答案 1 :(得分:0)

你到底想要完成什么?您是否尝试检测当前窗口是否为弹出窗口?如果是这样,BornToCode在this thread中的回复可能就是您的答案。他建议测试是否定义了window.opener

if ( window.opener !== 'undefined' )