新窗口未在Chrome中作为标签打开

时间:2012-03-25 22:41:56

标签: javascript google-chrome tabs

我正在为Chrome构建 ONLY

我想用window.open打开多个标签 (哪些Chrome会阻止,但我可以使用它)。 但Chrome会将它们打开为新窗口而不是标签!

由于某些不明原因,我发现只有opposite.的信息 我怎么能得到这个?

如果在此,如何在没有Chrome屏蔽的情况下调用程序化标签页?

修改 我看过一些帖子说这是不可能的,这是浏览器的偏好。 首先,我不知道如何设置这个偏好! 其次,我看到人们声称他们这样做了,所以谁相信?

编辑2: 我发现Chrome打开了新窗口,而不是打开标签页,因为它是一个JavaScript窗口,而不是用户点击。 任何人都知道如何伪造真正的点击? 因为调用click事件仍然算不是用户点击

2 个答案:

答案 0 :(得分:6)

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

可以做什么,虽然这是一个非常糟糕的黑客,是在用户操作上创建弹出窗口,然后使用稍后对弹出窗口的引用将位置设置为最终目标,如以下内容:

<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);

答案 1 :(得分:0)

Chrome在“一个窗口”上添加:https://chrome.google.com/webstore/detail/one-window/papnlnnbddhckngcblfljaelgceffobn

自动将新窗口和弹出窗口作为选项卡移动到主窗口。所以它永远不会超过一个窗口。

相关问题