是否可以使用 window.Open 函数在 JavaScript 中启动一个新窗口,然后将焦点设置到该选项卡?

这就是我今天要做的事情:

            var winRef = window.open(outUrl,wName,'left='+ wX +',top=' + wY + ',height=' + wH + ',width=' + wW + args);
            try {
                // Not all window types support the focus() property.
                winRef.focus();
            }
            catch (exception) {
            }

窗口打开,但新选项卡未获得焦点。

有帮助吗?

解决方案

杰伊,

你看到的是设计好的行为。为了限制恶意行为的机会,在选项卡式窗口中运行的脚本不能影响其他选项卡。

有关详细信息,请参阅面向开发人员的选项卡式浏览: http://msdn.microsoft.com/en-us/library/ms537636.aspx :

“在同一浏览器窗口中打开多个文档的能力具有一定的实际和安全影响 [...] 活动选项卡(具有焦点的选项卡)不会受到在非活动或后台选项卡中运行的脚本的影响。”

BR。

其他提示

作为用户,我从不希望应用程序(或选项卡)获得焦点,除非我特别要求。由于这个原因,我已竭尽全力防止浏览器(Firefox)中的选项卡获得焦点。

我相当确定您无法将焦点转移到另一个选项卡。

我的理解是,这样做是为了在一定程度上限制弹出窗口和其他恶意内容窃取用户的注意力。

如果另一个“选项卡”是您的应用程序的一部分(而不是来自其他站点的内容),也许您应该将其包含在主要内容顶部的弹出 div 中,而不是放在单独的窗口中;这样你就可以随时控制它的聚焦、停用它下面的内容(对于模式对话框)、隐藏它等等。

作为用户,我难道不应该能够控制其运作方式吗?

如果我想运行一个可以通过此功能增强的应用程序,该怎么办 - 我是否应该能够向域授予该权限?

只是一个想法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top