【发布时间】:2017-10-26 03:05:56
【问题描述】:
我有一个 div 元素。 div 是一个图标。 当您单击此图标时,会触发表单提交。 在表单提交上有一些计算,这些计算的结果会打开一个新选项卡。
我使用“window.open(url, '_blank');”
但在 safari 和 chrome 中,这个新标签被视为弹出窗口并被阻止。
我尝试创建一个隐藏的 a href 并触发点击,以便在新标签页中打开页面,但它不起作用。
知道如何解决这个问题吗?
编辑 - 找到解决方案
您需要在 $.ajax 成功方法内的单击事件上添加 window.open。这样就可以了。
$('#myButton').click(function () {
var redirectWindow = window.open('http://google.com', '_blank');
$.ajax({
type: 'POST',
url: '/echo/json/',
success: function (data) {
redirectWindow.location;
}
});
});
【问题讨论】:
-
如果人们想要阻止弹出窗口,他们会阻止弹出窗口,除了添加用户需要单击以查看结果的可见超链接之外,您无能为力,如 direct导致弹出窗口的用户交互 通常不会被阻止。
-
试试这个它显示在 safari & chrom
<html> <head> <!--Load the AJAX API--> </head> <body> <input type=button onclick="Test()" value="Click me"> <script> function Test(){ window.open("https://nodejs.org", '_self/_blank');} </script> </body> </html> -
添加你的onclick代码...你是直接在那里做window.open吗?
标签: javascript jquery google-chrome safari onclick