Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果弹出窗口被阻止,如何获得通知?(HTML JS PHP)_Php_Javascript_Html_Popup_Window - Fatal编程技术网

如果弹出窗口被阻止,如何获得通知?(HTML JS PHP)

如果弹出窗口被阻止,如何获得通知?(HTML JS PHP),php,javascript,html,popup,window,Php,Javascript,Html,Popup,Window,如果弹出窗口被弹出窗口阻止程序阻止,如何获得通知?(需要代码示例) window.open (URL, windowName[, windowFeatures]); 您打开一个新的弹出窗口,并作为URL放置一些html页面。在弹出的页面中,您可以编写一些JS,在其中可以使用window.opener变量,这样您就可以从主页访问所有JS。 然后,您可以在弹出的页面中设置一些标志-例如: index.html <html> <body> <script t

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

window.open (URL, windowName[, windowFeatures]);
您打开一个新的弹出窗口,并作为
URL
放置一些html页面。在弹出的页面中,您可以编写一些
JS
,在其中可以使用
window.opener
变量,这样您就可以从主页访问所有
JS
。 然后,您可以在弹出的页面中设置一些标志-例如:

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>
<html>
  <body>
    <script type="text/javascript">
      window.opener.opened = true;
    </script>
  </body>
</html>
我会这样做的

编辑

下面是使用
PHP
的另一种方法:

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

$_SESSION['opened'] = true;

index.php
中,您应该向
AJAX
写入一些内容,请求执行一个操作,该操作将从
$\u会话中返回一个值

简短的回答是,除非您真的想惩罚您的用户,否则您不能这样做

弹出窗口通常使用JavaScript在客户端生成,因此您无法知道弹出窗口是否被服务器阻止,除非您正在查看页面内容请求与来自同一IP的弹出内容请求的比较。这种方法会产生难以置信的误报和漏报,因为如果用户刷新页面,他们可能不会第二次看到弹出窗口,但可能是第一次看到。或者可以生成一个弹出窗口,该窗口中的内容可以独立于页面其余部分的内容加载。因此,唯一合理的解决方案是完全不可靠的


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

通过该循环,这是一个免费的想法-您可以命名弹出窗口并为其添加事件
domready
。另外,我认为设置一些超时时间很重要。这取决于您使用的js库。有人能帮我回答这个问题吗?不要使用弹出窗口。就这么简单。