如何在另一个浏览器标签中将焦点设置回父窗口?我试过了:
window.opener.focus();
无济于事。它似乎只在窗口没有停靠时才能工作。
我需要在Chrome,IE9 / 10,Firefox和Safari中使用它。
Internet Explorer似乎也存在将焦点设置到子窗口的问题。例如。使用时:
var windowRef = window.open(url);
然后来自同一个标签:
windowRef.focus(); // ok in Chrome, doesn't seem to work in IE...
答案 0 :(得分:0)
您想要达到什么目标?要将焦点设置在内,将另一个窗口设置为第一个链接/按钮/表单字段/其他?或者使另一个窗口(浏览器选项卡)成为活动的浏览器选项卡?
无论如何 - 也许opener.focus()
调用不起作用,因为两个窗口都不是来自同一个源。尝试通过postMessage设置通讯渠道以解决此问题。所以在opener
文档中,请听一下这样的事件:
window.addEventListener('message', function (event) {
window.focus();
}, false);
在打开的窗口中,发送如下信息:
opener.postMessage('foo', '*');
可悲的是,我无法测试这是否正常。 (我想它应该,但是......)
但要添加一些内容:
attachEvent
等效文件。'*'
原始通配符替换为开启窗口的实际原点。