【问题标题】:Open a tab in an existing new window在现有的新窗口中打开选项卡
【发布时间】:2016-03-08 13:32:16
【问题描述】:

有没有办法在您已经打开的窗口中通过 JavaScript 从父窗口打开一个新选项卡,但在新窗口中打开选项卡,而不是在父窗口中打开?

换句话说,你能用一个 JavaScript 在同一个 DOM 中做这种事情吗?

//this opens the new window
var windowOpened = window.open("html1.html", "", "width=400, height=200");
//this is where I would like to open a new tab in the window I opened above
windowOpened.open("html2.html","","_blank");

我相当肯定“_blank”是无效的,但它只是一个例子。我希望必须有一种方法可以通过另一个窗口中的 javascript 在已打开的窗口中打开新选项卡。

我知道我可以使用 jQuery-ui 并打开一个包含标签的窗口,我可以在其中添加标签甚至删除标签。但我需要一个现有的浏览器窗口才能在从“父”窗口打开的窗口中打开一个新选项卡。

这可能吗?如果有怎么办?

【问题讨论】:

  • 这不一样,因为那是尝试在与 JavaScript 窗口相同的窗口中打开一个新选项卡,即“父”窗口。在这个,我有window1,打开一个新窗口window2。然后我想要window1,在window2中打开一个新标签。我希望能澄清一点。

标签: javascript tabs window.open


【解决方案1】:

您用于“_blank”的参数是窗口的名称。如果您使用相同的名称,它将在同一窗口中打开。

windowOpened.open("html1.html","myWindow");

这将在同一窗口中打开:

windowOpened.open("html2.html","myWindow");

【讨论】:

  • 我试过你的回复。首先,在第一个窗口打开命令中使用“windowOpened.open()”命令不起作用,但我认为你只是打错了。我试过窗口名称,你的名字是“myWindow”,它只是写在新窗口的同一个选项卡中,而不是新窗口中的新选项卡。注意:窗口名称需要是 window.open() 中的第二个条目。不过感谢您的回复。
  • 对不起。我读得很快,没有得到你在window2中说新标签的部分。没错,名字是第二个参数。
【解决方案2】:

好的,感谢您的帮助@marcosspn:

var window1 = window.open("html1.html", "tab1", "width=400, height=200");
window1.open("html2.html", "tab2");

显然在 window.open("url", "windowName", "options") 命令中声明的窗口名称必须不同,但是在第一个打开的窗口中声明的 var 必须用于打开同一窗口中的新标签页。

希望这可以帮助更多的人。然而,我还有另一个问题,那就是如何将 window1 对象传递给另一个函数以使用已经打开的窗口。现在我会处理这个问题,但是任何关于传递窗口对象的建议都会有所帮助。

谢谢。

【讨论】:

  • 好的,我想我已经弄清楚了窗口对象。这是一个错字。注意 CAML 大小写中首字母的大写。 ;o) 我认为我想要的会奏效。谢谢大家。
猜你喜欢
  • 1970-01-01
  • 2014-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
相关资源
最近更新 更多