如果您的PopUp窗口被阻止,如何获得通知?(HTML JS PHP)

时间:2010-05-04 08:09:58

标签: php javascript html popup window

如果您的PopUp窗口被弹出窗口阻止程序阻止,如何获取通知? (需要的代码示例)

2 个答案:

答案 0 :(得分:6)

使用

window.open (URL, windowName[, windowFeatures]);

你打开一个新的弹出窗口,并URL你放了一些html页面。在该弹出式页面中,您可以编写一些JS,其中您可以使用window.opener变量,以便您可以从主页面访问所有JS。 然后你可以在popuped页面设置一些标志 - 例如:

index.html

<html>
  <body>
    <script type="text/javascript">
      var opened = false;
      window.open('popup.html');
      // and here some loop in mooTools/jQuery/or
      // something to look up for variable changes
    </script>
  </body>
</html>

popup.html

<html>
  <body>
    <script type="text/javascript">
      window.opener.opened = true;
    </script>
  </body>
</html>

我会这样做。

修改

以下是使用PHP的另一种方式:

在您的popup.php中,您可以在会话中设置一些标记

$_SESSION['opened'] = true;

index.php中,您应该向AJAX写一些请求操作的内容,该操作会从$_SESSION返回一个值。

答案 1 :(得分:0)

简短的回答是除非你真的想要惩罚你的用户,否则你不能。

弹出窗口通常使用JavaScript在客户端生成,因此您无法知道弹出窗口是否已从服务器中阻止,除非您正在观察比较页面内容请求与来自同一IP的弹出内容请求。该方法产生了大量的误报和假阴性,但是如果用户刷新页面,他们可能不会第二次获得弹出窗口,但他们可能第一次得到它。或者可以生成弹出窗口,然后该窗口中的内容可以独立于页面其余部分中的内容加载。因此,唯一合理的解决方案是完全不可靠的。

所以,你可以做的是编写一个JavaScript测试,以测量是否应该从触发JavaScript生成弹出窗口。当触发JavaScript时,但弹出窗口不会立即存在,那么您必须触发AJAX以向您发送警报,以便动态通知弹出窗口无法加载。但是,如果我曾经看过这样的代码,我会将整个域名从我的企业列入黑名单,并向主要安全公司发出警报,告知您要么是恶意网站,要么已被入侵。