javascript - Chrome, Javascript, window.open in new tab

标签 javascript window.open

在 chrome 中,这会在新标签页中打开:

<button onclick="window.open('newpage.html', '_blank')" />

这会在新窗口中打开(但我也希望它能在新标签页中打开:

<script language="javascript">
  window.open('newpage.html', '_blank');
</script>

这可行吗?

最佳答案

您无法直接控制它,因为它是由 Internet Explorer 用户控制的选项。

使用不同窗口名称的 Window.open 打开页面将像弹出窗口一样在新的浏览器窗口中打开,或者如果用户将浏览器配置为这样做,则在新选项卡中打开。

编辑:

更详细的解释:

1.在现代浏览器中,window.open 将在新选项卡中打开,而不是弹出窗口。

2.您可以通过在第三个参数中指定选项来强制浏览器使用新窗口(‘popup’)

3.如果 window.open 调用不是用户启动事件的一部分,它将在新窗口中打开。

4.“用户发起的事件”不必调用相同的函数——但它必须源自用户点击调用的函数

5. 如果用户发起的事件委托(delegate)或延迟函数调用(在未绑定(bind)到点击事件的事件监听器或委托(delegate)中,或者通过使用 setTimeout,例如),它会失去其状态作为“用户发起”

6.一些弹出窗口拦截器将允许从用户发起的事件打开窗口,但不允许以其他方式打开的窗口。

7. 如果任何弹出窗口被阻止,那些通常被阻止程序(通过用户发起的事件)允许的弹出窗口有时也会被阻止。 一些例子……

强制在新浏览器实例中打开窗口,而不是在新选项卡中打开:

window.open('page.php', '', 'width=1000');

以下将符合用户启动事件的条件,即使它调用了另一个函数:

function o(){
  window.open('page.php');
}
$('button').addEvent('click', o);

以下不属于用户发起的事件,因为 setTimeout 推迟了它:

function g(){
  setTimeout(o, 1);
}
function o(){
  window.open('page.php');
}
$('button').addEvent('click', g);

关于javascript - Chrome, Javascript, window.open in new tab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15818892/

相关文章:

javascript在外部程序而不是浏览器中打开链接

javascript - jQuery Validate - 每个元素有多个规则?

javascript - Javascript 函数的返回值

JavaScript 媒体源元素

JavaScript:为什么我的表单不提交?

javascript - 通过选择列表更改的按钮 href 将无法解析(javascript :window. open(window.variable))

javascript - jquery中带有箭头的简单下拉列表

Javascript window.open 不工作

javascript - 如何在用户在打开的窗口中搜索内容后关闭打开的窗口(使用 JavaScript)?

javascript - 将二维 javascript 数组导出到 Excel 工作表