在Chrome浏览器中,如何用JavaScript在新标签页中打开链接,而不是新窗口?

3
我正在使用:
window.open("Download.php");

这个文件在所有浏览器中都会以新标签页的形式打开,但在Chrome中将会以新窗口的形式打开。因此,我尝试了以下方法:

window.open("Download.php",'_blank'); 
window.open("Download.php",'_new');

但它仍然在新窗口中打开,而不是在一个标签页中。我不知道这是编码问题还是默认设置问题。我使用的是Chrome浏览器v31.0.1650.57 m。


https://dev59.com/aW445IYBdhLWcg3wWY8U#4907854 - Jamie Taylor
可能是重复的问题,参考使用JavaScript在新标签页中打开URL - JJJ
我已经尝试过了,但问题仍然存在。还有其他方法吗? 我将我的代码放在 AJAX 成功的一侧。 - JEYASHRI R
2个回答

2
您可以尝试以下方法:
var tab=window.open("Download.php",'_blank'); 
tab.focus();

验证步骤

创建一个带有标记的HTML文件:

<html>
 <body>
   <script>
     function newTab(){
        var tab=window.open("http://conceptf1.blogspot.com/2013/11/javascript-closures.html",'_blank'); 
        tab.focus();
     }
   </script>
   <a href="#" onclick="newTab()">Open Tab</a>
  </body>
</html>

在Chrome中打开并点击链接。


有任何默认浏览器设置的问题吗? - JEYASHRI R
成功:function(msg){ 如果(format=='PDF') window.open("Download.php"); } - JEYASHRI R
1
这在2021年7月的Firefox 89.0.2(桌面版)和Edge 91(桌面版,Chromium)上运行良好,谢谢!编辑:我应该提到我使用了 onclick=window.open("httpexample.com","_blank").focus(); - tycrek

1
短答案:你不能。至少目前,浏览器供应商认为这应该严格留给用户自己定义。你把目标设定为应该是一个新窗口的内容,浏览器将使用用户的偏好来决定它是作为新窗口还是新标签页打开。
长答案:有一种CSS属性可以在HTML方面实现此功能,但是没有任何浏览器支持它。根据提议,您可以使用“target-new: tab”来打开您明确希望在新标签页中打开的链接,“target-new: window”用于那些您希望在新窗口中打开的链接。我不知道是否有任何DOM提议在JavaScript方面执行类似于此的操作。

简短的回答和长篇回答一样长 :O - gztomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接