我试图在一个新的选项卡中打开一个URL,而不是弹出窗口。
我见过一些相关的问题,其中的回答大致如下:
window.open(url,'_blank');
window.open(url);
但没有一个对我有效,浏览器仍然试图打开一个弹出窗口。
我试图在一个新的选项卡中打开一个URL,而不是弹出窗口。
我见过一些相关的问题,其中的回答大致如下:
window.open(url,'_blank');
window.open(url);
但没有一个对我有效,浏览器仍然试图打开一个弹出窗口。
当前回答
只要省略strWindowFeatures参数,就会打开一个新选项卡,除非浏览器设置覆盖它(浏览器设置胜过JavaScript)。
新建窗口
var myWin = window.open(strUrl, strWindowName, [strWindowFeatures]);
新建选项卡
var myWin = window.open(strUrl, strWindowName);
--或--
var myWin = window.open(strUrl);
其他回答
我使用了以下方法,效果很好!
window.open(url, '_blank').focus();
只要省略strWindowFeatures参数,就会打开一个新选项卡,除非浏览器设置覆盖它(浏览器设置胜过JavaScript)。
新建窗口
var myWin = window.open(strUrl, strWindowName, [strWindowFeatures]);
新建选项卡
var myWin = window.open(strUrl, strWindowName);
--或--
var myWin = window.open(strUrl);
不要使用target=“_blank”
始终为该窗口使用一个特定的名称,在我的情况下是指fulName。在这种情况下,可以节省处理器资源:
button.addEventListener('click', () => {
window.open('https://google.com', 'meaningfulName')
})
这样,例如,当你在一个按钮上单击10次时,浏览器将始终在一个新选项卡中重新阅读它,而不是在10个不同的选项卡中打开它,这将消耗更多的资源。
您可以在MDN上阅读有关此的更多信息。
作者无法选择在新选项卡而不是新窗口中打开;这是用户偏好。(请注意,大多数浏览器中的默认用户首选项是针对新选项卡的,因此在未更改该首选项的浏览器上进行的简单测试不会证明这一点。)
CSS3提出了新的目标,但该规范被放弃。
反之则不然;通过在window.open()的第三个参数中为窗口指定某些窗口特性,当首选项是选项卡时,可以触发一个新窗口。
我认为你无法控制这一切。如果用户已将浏览器设置为在新窗口中打开链接,则不能强制其在新选项卡中打开链接。
JavaScript在新窗口中打开,而不是选项卡