新问题
在谷歌浏览器上,我只能在点击元素的情况下focus()
窗口。
最初的问题
如何使用 javascriptfocus()
到一个窗口,其中弹出窗口不是在我用来聚焦网页的同一窗口中创建的
var wnd = window.open("http://bing.co.uk", "stage");
适用于修改从其他网页打开的弹出窗口。
wnd.focus();
但是,这不起作用,因为当具有 wnd 焦点功能的网页打开时,舞台窗口已经打开。
回答您最初的问题:
如果您知道存在具有该名称的窗口,则可以从以后对window.open
的调用中获取对它的引用(例如,当您要调用blur
或focus
时):
window.open("", "theWindowName").focus();
但是,当然,如果窗口尚不存在,这将打开一个新窗口。遗憾的是,您无法提前知道(应用程序逻辑中除外)具有该名称的窗口是否已存在。
获得窗口对象后,可以调用blur
或focus
。
现场示例 |源
回答您完全不同的新问题:
在谷歌浏览器上,我只能在点击元素的情况下
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);
});
});
现场示例 |源