取消阻止window.open弹出窗口?

时间:2011-01-11 16:10:34

标签: javascript hyperlink popup

由于 真的 笨重的CMS的限制,我无法使用

target="_blank"

在新窗口中打开链接。所以我认为我唯一真正的解决方案是将链接指向一个中间页面,打开一个新窗口,然后将当前窗口重定向回原始页面......所以像这样:

window.open ("http://www.NewPage.com/");
window.location = "http://www.OldPage.com/";

当然,大多数浏览器都会阻止window.open方法...所以我的选择是什么?当然,有一些聪明的Javascript技巧可以解决这个问题。

2 个答案:

答案 0 :(得分:1)

没有选择。你不能这样做,而且有充分的理由。

当调用它的代码处理类似"点击"的事件时,浏览器只允许window.open()工作。在这种情况下,浏览器假定页面提供可点击的元素,并且用户知道那里是弹出窗口。如果一个页面只是从一些上下文(例如直接脚本代码)或者准备好的"中调用window.open()来获取新窗口。或者"加载"事件处理程序或XMLHttpRequest回调,然后浏览器假定弹出窗口可能是令人讨厌的东西。

有些浏览器允许用户放宽这些规则,但您的代码无法强制执行此规则。

答案 1 :(得分:0)

你可以在页面上注入iframe并将其放在所有内容上,但我真的不推荐这个。

浏览器将在一天结束时控制是否允许window.open,所以我不打算尝试找到解决方案。