检测用户代理是否支持弹出窗口

detect if the useragent supports popup

本文关键字:窗口 支持 用户代理 是否 检测      更新时间:2023-09-26

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

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

但是,例如在Iphone或Ipad中,它会在新选项卡中打开弹出窗口,并且父母将丢失上下文。 因此,当新选项卡关闭时,父项无法侦听事件。

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

谢谢。

你可以试试这个脚本:

<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>

主要来源:这里

你到底想完成什么?您是否正在尝试检测当前窗口是否为弹出窗口?如果是这样,BornToCode在这个线程中的响应可能是你的答案。他建议测试是否定义了window.opener

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