是什么导致某些浏览器将我的代码视为未经请求的?
我有一个致力于帮助人们进行互动会话的网站.它从用户单击[开始]开始,因此这是一个同意的操作.这应该(1)打开弹出窗口,同时(2)将第一页重定向到结束页面,如下所示:
<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>
Run Code Online (Sandbox Code Playgroud)
如上所述,这并不是试图打开一个未经请求的弹出窗口,但IE和Chrome的某些版本似乎正在处理它.我一直试图修复,最近消化了这篇文章.
在其中Bobince评论
这些天,你真的不需要问"我的未经请求的弹出窗口被阻止了吗?",因为答案总是"是" - 所有主流浏览器都默认打开弹出窗口阻止程序.最好的方法是只对window.open()响应直接点击,这几乎总是允许的.我很乐意接受这个原则,因为我只想让我的弹出窗口打开.
是什么导致某些浏览器将我的代码视为未经请求的?
我很感激你能给我的任何帮助.(正如你可能已经猜到的那样,客户端不是我的包,而这个话题一直困扰着我多年).
非常感谢(和手指交叉)吉尔斯
你无能为力.您可以通过检查window.open()返回的窗口对象引用,让用户禁用弹出窗口阻止程序或通知它们弹出窗口阻止程序已启用
例如
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');
}
Run Code Online (Sandbox Code Playgroud)
你可以找到另一种方式并尝试布拉德的建议.