如果您的PopUp窗口被弹出窗口阻止程序阻止,如何获取通知? (需要的代码示例)
答案 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以向您发送警报,以便动态通知弹出窗口无法加载。但是,如果我曾经看过这样的代码,我会将整个域名从我的企业列入黑名单,并向主要安全公司发出警报,告知您要么是恶意网站,要么已被入侵。