新窗口不会'不要在Chrome浏览器中以选项卡形式打开

new window doesn't open as tab in Chrome

本文关键字:选项 浏览器 Chrome 窗口 新窗口      更新时间:2023-09-26

我正在为Chrome构建一些ONLY

我想用window.open打开几个选项卡(Chrome屏蔽了它,但我可以接受启用它)。但Chrome将它们作为新窗口而不是选项卡打开!

由于一些不清楚的原因,我只找到了相反的信息。我怎样才能做到这一点?

如果是这样,我如何在不被Chrome阻止的情况下调用程序化的选项卡打开?

编辑:我看到一些帖子说这是不可能的,这是浏览器的偏好。首先,我不知道如何设置偏好!其次,我看到有人声称他们做了这件事,那么该相信谁呢?

第2版:我发现Chrome打开新窗口而不打开选项卡,因为它是JavaScript窗口打开而不是用户点击。有人知道我怎么能假装点击吗?因为调用点击事件仍然算作非用户点击

如果您的弹出窗口是由直接用户操作创建的(未被弹出窗口阻止程序阻止),并使用默认选项,它将在新选项卡中打开。如果您以编程方式创建它,它将作为新窗口打开。没有办法改变这种行为。

可以做的,尽管这是一个非常糟糕的破解,是在用户操作上创建弹出窗口,然后在稍后使用对弹出窗口的引用将位置设置为最终目的地,如下所示:

<a href="javascript:;" id="testAnchor" />
var popup1 = null;
document.getElementById('testAnchor').onclick = function() {
    popup1 = window.open('about:blank', 'popup1');
}
  setTimeout(function() {
       popup1.location = 'LOCATION_ON_THE_SAME_ORIGIN_AS_THE_OPENER';
  }, 5000);

Chrome插件"一个窗口":https://chrome.google.com/webstore/detail/one-window/papnlnnbddhckngcblfljaelgceffobn

自动将新窗口和弹出菜单作为选项卡移动到主窗口。因此,它永远不会只打开一扇窗户。