Javascript 合法避免弹出窗口阻塞
是什么导致一些浏览器认为我的代码是未经请求的 我有一个网站,专门帮助人们进行互动会话。它从用户单击[开始]开始,因此这是一个同意的操作。这应该(1)打开一个弹出窗口,同时(2)将第一页重定向到一个结束页,如下所示:Javascript 合法避免弹出窗口阻塞,javascript,Javascript,是什么导致一些浏览器认为我的代码是未经请求的 我有一个网站,专门帮助人们进行互动会话。它从用户单击[开始]开始,因此这是一个同意的操作。这应该(1)打开一个弹出窗口,同时(2)将第一页重定向到一个结束页,如下所示: <head> <SCRIPT language="JavaScript"> function openwindow(){window.open("{INTERACTION}","interaction","resizable=0,width=8
<head>
<SCRIPT language="JavaScript">
function openwindow(){window.open("{INTERACTION}","interaction","resizable=0,width=800,height=600,status=0");}</SCRIPT>
</head>
<body>
<FORM action="end.php" method="{METHOD}" >
<input type="submit" class="button"
onClick="javascript: openwindow()"
value="Begin" />
</FORM>
</body>
函数openwindow(){window.open(“{INTERACTION}”,“INTERACTION”,“resizable=0,width=800,height=600,status=0”);}
如前所述,这并不是试图打开一个未经请求的弹出窗口,但IE和Chrome的某些版本似乎正在这样对待它。我一直在尝试修复,最近一次是消化
在它的博宾斯评论
现在,你真的不需要问“我的主动弹出被阻止了吗?”这个问题,因为答案总是“是” — 默认情况下,所有主要浏览器都打开了弹出窗口阻止程序。最好的方法是直接点击window.open(),这几乎总是允许的。我很乐意接受这个原则,因为我只想打开弹出窗口
是什么导致一些浏览器认为我的代码是未经请求的
如果你能给我任何帮助,我将不胜感激。(正如你们可能已经猜到的,客户端不是我的包,这个话题已经困扰了我很多年了)
提前多谢(祈祷好运)
贾尔斯对此你无能为力。一些弹出窗口拦截器仍然会阻止一切,即使是响应用户的点击。你所能做的就是建议你的用户关闭弹出窗口拦截器,或者找到一种不同的方式来做你想做的事情。一种流行的方法是div,它出现在页面上所有其他方法的顶部,如
有很多方法可以使这变得容易。你无能为力。您可以要求用户禁用弹出窗口阻止程序,或者通过检查window.open()返回的窗口对象ref来通知他们已启用弹出窗口阻止程序 e、 g 你可以找到另一种方法,试试Brad的建议。你有(至少?)两种选择来解决这个问题:
- 如果您想继续使用弹出窗口,请为您的用户显示一个非常明显的警告,指示他们如何将浏览器配置为将您的域列入白名单(例如,当您获得新权限时,StackOverlow.com顶部出现的横幅,甚至是Chrome显示的用于操作的横幅,它们也是基于web的)李>
- 使用iFrame并根据用户的单击加载其内容
!w
还不够。见:
var w = window.open('http://domain.com');
if(!w) {
//an alert in this example
alert('oops..seems like a pop-up blocker is enabled. Please disable');
}