javascript – 如何在选项卡时将焦点设置为子窗口和开启窗口

前端之家收集整理的这篇文章主要介绍了javascript – 如何在选项卡时将焦点设置为子窗口和开启窗口前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在另一个浏览器选项卡中,如何将焦点设置回父窗口?我试过了:
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).但是有一些解决方法.

猜你在找的JavaScript相关文章