代码之家  ›  专栏  ›  技术社区  ›  Jay Mooney

可以从javascript在IE7中设置选项卡焦点

  •  1
  • Jay Mooney  · 技术社区  · 16 年前

    是否可以使用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) {
                }
    

    窗口打开,但新的选项卡不接收焦点。

    5 回复  |  直到 16 年前
        1
  •  4
  •   Guido    16 年前

    松鸦,

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

    有关详细信息,请参阅位于 http://msdn.microsoft.com/en-us/library/ms537636.aspx :

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

    Br

        2
  •  1
  •   jtimberman    16 年前

    作为一个用户,我从不希望应用程序(或选项卡)获得关注,除非我特别要求。因为这个原因,我已经竭尽全力阻止浏览器(火狐)中的标签成为焦点。

        3
  •  1
  •   Erratic    16 年前

    我相当肯定你不能把焦点转移到另一个标签上。

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

        4
  •  1
  •   Brendan Kidwell    16 年前

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

        5
  •  1
  •   ojintoad    16 年前

    作为一个用户,我不应该控制它的运行方式吗?

    如果有一个应用程序可以通过我想要运行的这个功能得到增强,我应该能够授予一个域这个特权吗?

    只是一个想法。