我使用此代码重定向到新选项卡:
<script type="text/javascript">window.open('http://example.com');</script>
但是当我在 Google Chrome 中运行它时,它显示“POPUP BLOCKED”并且它仍然在页面上。 那么如何通过添加 javascript 来阻止 google chrome 显示被阻止的弹出窗口。 我可以从我的计算机上阻止此操作,因为 chrome 中有一个选项“始终允许”,但如果我发布它,那么每个受众都无法执行此操作。
最佳答案
您无法“阻止”Chrome 执行此操作,这就是弹出窗口拦截器的全部意义。
事实上,您一开始就不应该尝试创建弹出窗口,人们会因此讨厌您。
新选项卡或窗口只能作为用户操作的结果而打开(并且其他所有内容都正确被阻止),因此最好的方法可能是创建一个简单的链接(<a>
)与 target="_blank"
.
但是如果我没记错的话,如果有问题的代码是从 click
的上下文中运行的,那么您实际上可以在大多数浏览器中创建弹出窗口。如果事件是用户事件(而不是由脚本调度的事件),则事件处理程序(以及其他一些事件处理程序,例如 dblclick
,但不是像 mouseover
之类的东西)。
因此,如果链接确实不够,请尝试类似
myElement.addEventListener('click', function()
{
window.open('http://example.com');
});
这当然只有在用户单击该元素时才有效,但我可以向你保证,如果他们不单击它,他们就不想看到弹出窗口。
演示:Fiddle .
关于用于阻止浏览器弹出窗口的 JavaScript 被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30117585/