在另一个浏览器选项卡中,如何将焦点设置回父窗口?我试过了:
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...
解决方法
你到底想要达到什么目的?将焦点设置在另一个窗口内的第一个链接/按钮/表单字段/什么?或者使另一个窗口(浏览器选项卡)成为活动的浏览器选项卡?
无论如何 – 也许opener.focus()调用不起作用,因为两个窗口都不是来自同一个源.尝试通过postMessage设置通信通道以解决此问题.所以在开场文档中,听一下这样的事件:
window.addEventListener('message',function (event) { window.focus(); },false);
在打开的窗口中,发送如下消息:
opener.postMessage('foo','*');
可悲的是,我无法测试这是否正常. (我想它应该,但……)
但要添加一些内容:
>某些旧版垃圾浏览器不支持postMessage(参见caniuse.com).但是有一些解决方法.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。