当页面加载时,如何将 focus() 聚焦到 javascript 上的另一个窗口?



新问题

在谷歌浏览器上,我只能在点击元素的情况下focus()窗口。

最初的问题

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

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

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

wnd.focus();

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

回答您最初的问题:

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

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

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

获得窗口对象后,可以调用blurfocus

现场示例 |源


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

在谷歌浏览器上,我只能在点击元素的情况下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);
});
});

现场示例 |源