-1

新问题

在 Google Chrome 上,我只能focus()在单击元素时打开窗口。

原来的问题

如何focus()使用 javascript 访问一个窗口,其中弹出窗口不是在我用来聚焦网页的同一窗口内创建的

var wnd = window.open("http://bing.co.uk", "stage");

适用于修改从不同网页打开的弹出窗口。

wnd.focus();

但是,这不起作用,因为当具有 wnd 焦点功能的网页打开时,舞台窗口已经打开。

4

1 回答 1

4

回答你原来的问题:

如果您知道具有该名称的窗口存在,您可以从以后的调用中获取对它的引用window.open(例如,当您想要调用blur或时focus):

window.open("", "theWindowName").focus();

但是,当然,如果窗口存在,那将打开一个新窗口。遗憾的是,您无法提前知道(除了在您的应用程序逻辑中)具有该名称的窗口是否已经存在。

一旦你有了 window 对象,你就可以调用bluror focus

实例| 来源


回答您完全不同的新问题:

在 Google Chrome 上,我只能focus()在单击元素时打开窗口。

如果您的代码打开了窗口,您应该可以。例如:

HTML:

<button id="btnOpen">Open</button>
<button id="btnFocus">Focus</button>

JavaScript:

jQuery(function($) {
  $("#btnOpen").click(function() {
    window.open(
      "about:blank",
      "theWindow",
      "width=500,height=500");
  });
  $("#btnFocus").click(function() {
    // Note that this happens a full second later, NOT
    // in direct response to a user event
    setTimeout(function() {
      window.open("", "theWindow").focus();
    }, 1000);
  });
});

实例| 来源

于 2012-11-10T10:53:45.050 回答