使用JavaScript在新标签页(不是新窗口)中打开一个URL

0 投票
最新提问 6月 21 分类:JavaScript | 用户: 双鱼座 (320 分)
window.open(url,'_blank');
window.open(url);

但是无法工作,浏览器仍然试图打开一个弹出窗口。

2 个回答

0 投票
最新回答 6月 21 用户: 雨杰 (240 分)

打开新标签还是打开新窗口一般是由用户偏好定义的,。

可以试试下面的代码

function OpenInNewTabWinBrowser(url) {
  var win = window.open(url, '_blank');
  win.focus();
}

调用的时候使用

<div onclick="openInNewTab('bczs.net');">点击链接试试</div>
0 投票
最新回答 6月 21 用户: snow (630 分)

window.open 在所有浏览器的新标签页中无法可靠地打开弹出窗口

不同的浏览器 window.open 以不同的方式实现该行为,特别是对于用户的浏览器偏好。window.open由于他们处理用户的浏览器偏好设置有所不同,所以您不能指望所有浏览器如Internet Explorer,Firefox和Chrome都有相同的行为。

例如,IE(11)用户可以选择在新窗口或新选项卡中打开弹出窗口,您不能强制IE 11用户以某种方式打开弹出窗口 window.open。

至于Firefox(29)用户,使用的方式window.open(url, '_blank') 取决于浏览器的选项卡首选项,尽管您仍然可以通过指定宽度和高度来强制他们在新窗口中打开弹出窗口(请参阅下面的“关于Chrome的内容”部分)。

示范

转到浏览器的设置并将其配置为在新窗口中打开弹出窗口。

Internet Explorer(11)

IE设置对话框1

IE选项卡设置对话框

测试页

设置Internet Explorer(11)后,如上所示在新窗口中打开弹出窗口,请使用以下测试页进行测试window.open:

<!DOCTYPE html>
<html>
<head>
  <title>Test</title>
</head>
<body>
  <button onclick="window.open('http://bczs.net');">
    <code>window.open(url)</code>
  </button>
  <button onclick="window.open('http://bczs.net', '_blank');">
    <code>window.open(url, '_blank')</code>
  </button>
</body>
</html>

观察弹出窗口在新窗口中打开,而不是新选项卡。

您还可以在Firefox(29)中测试上面的代码段,其标签首选项设置为新窗口,并看到相同的结果。

关于Chrome:它的window.open与IE(11)和Firefox(29)不同

我不是100%肯定,但它看起来像Chrome(版本34.0.1847.131 m)似乎没有任何设置,用户可以用来选择是否在新窗口或新的标签中打开弹出窗口(如Firefox和IE有)。我查看了Chrome文档管理弹出窗口,但没有提到任何关于这种情况的描述。

同样,不同的浏览器似乎也会以不同的方式实现行为 window.open 在Chrome和Firefox中,指定宽度和高度将强制弹出窗口,即使用户已将Firefox(29)设置为在新选项卡中打开新窗口:

<!DOCTYPE html>
<html>
<head>
  <title>Test</title>
</head>
<body>
  <button onclick="window.open('http://bczs.net', 'test', 'width=400, height=400');">
    <code>window.open(url)</code>
  </button>
</body>
</html>

但是,如果用户将tab设置为浏览器首选项,则IE 11中的标签总是打开一个新选项卡,即使指定宽度和高度也不会强制为其添加新窗口。

因此window.open,Chrome中的行为似乎是在onclick事件中使用的新选项卡中打开弹出窗口,在浏览器控制台中使用时,在新窗口中打开弹出窗口,并在新窗口中打开它们指定宽度和高度。

概要

不同的浏览器在 window.open 用户的浏览器偏好方面实现不同的行为window.open由于他们处理用户的浏览器偏好设置有所不同,所以您不能指望所有Internet Explorer,Firefox和Chrome都有相同的行为。

附加阅读

欢迎来到编程助手,编程方面有什么不懂的问题可以尽管在这里提问,你将会收到热心爱好者的回答。
...