2012-07-06 201 views
0

是否可以通过PHP检查我的浏览器FF/Chrome/IE/Safari弹出窗口阻止程序是否允许/启用?浏览器弹出窗口阻止程序已关闭/打开

+1

我认为没有办法。 你可以尝试一些这样的JavaScript [测试弹出式窗口拦截器使用JavaScript](http://davidwalsh.name/popup-block-javascript) – 2012-07-06 07:53:15

+0

你是什么意思的“允许”?你有一个PHP文件,你可以用一个弹出窗口拦截器的浏览器调用它,对吗?那么,谁决定什么时候允许什么以及理由如何?您需要先告诉我们,然后才能告诉您是否可以。或者我只是没有得到你的问题,请澄清。 – Nanne 2012-07-06 07:55:31

+0

@BasicBridge:是最好的选择! – Suleman 2012-07-06 07:55:33

回答

1

弹出广告拦截,但也许你可以做这样的事情:

  • 触发测试弹出窗口并立即用javascript关闭它。在此过程中检测弹出是否成功或阻止。

  • 一旦完成,向服务器发起AJAX请求并保存是否被弹出窗口阻止程序阻止在会话变量中。

不过,我真的不明白为什么你的服务器端代码需要知道客户端是否有积极的弹出窗口拦截器,除非你正在收集数据作统计用途。

+0

耶在JS中需要它。 – Suleman 2012-07-06 08:02:05

1

你可以尝试这样的事情:

<script language="javascript"> 

var myWindow; 

myWindow= window.open(...); 
if (myWindow.closed) { 
    //pop up disabled 
} 

</script> 

但只能在客户端上检测到它不是在PHP ^^

+0

这对你有好处吗? – 2012-07-06 09:15:18

1

因为PHP是一种服务器端语言,我很积极,它不可能只使用PHP。像其他答案一样,在这个任务中使用Javascript(也许是AJAX?)。

PHP可能知道关于浏览器的“一点点”,但只要是请求标头中的内容。这包括用户代理标题,告诉您用户正在使用哪个浏览器,并且您的策略显示您的信息可以取决于用户代理(很多网页在从手机浏览器)。

相关问题