【问题标题】:How to set focus to already opened tab in firefox?如何在Firefox中将焦点设置为已打开的选项卡?
【发布时间】:2012-09-23 04:55:02
【问题描述】:

我有一个链接可以在 Firefox 的新标签页中打开一个页面。

<a target="_default" href='/portal.html' >
    Go to Portal
</a>

但是,当我再次单击此链接时,它会刷新打开的选项卡并且不会对其设置焦点,因此用户无法知道该选项卡已打开.

有什么方法可以让我抓住打开的标签并在打开一次后将焦点集中在后续点击上或任何其他解决方法。

谢谢。

【问题讨论】:

  • 请参考link 这对我来说就像一个魅力。

标签: javascript html


【解决方案1】:

使用制表符名称获得焦点可能会有所帮助..假设我们有

win = window.open("https://www.google.com", "test");

win.focus();

现在,每次运行上述代码的第一行时,浏览器都会首先找到名称为 test 的选项卡并使用 url https://www.google.com 重新加载它,以防它找不到带有名称 test 它将打开一个新的。在第二行运行时,它会将焦点设置到从第一行加载的同一选项卡上。

【讨论】:

    【解决方案2】:

    我在我的项目中遇到了类似的问题。 幸运的是,每当我需要将焦点设置在已打开的选项卡上时,它也需要刷新。 所以我使用了以下技巧,首先使用相同的 href 和目标再次打开选项卡,返回该窗口的引用,关闭它,然后使用相同的参数再次打开。

    popup = window.open('/popup.html', '_popup')
    popup.close()
    popup = window.open('/popup.html', '_popup')
    

    【讨论】:

    • 这是唯一的解决方案。通常,当开发人员不想从服务器端重新获取内容时,他会尝试集成此类功能。
    • 将第 2 行的 .close() 替换为 .focus() 并删除第 3 行。
    【解决方案3】:

    没有。

    每个选项卡通常在单独的进程沙箱中运行。这是不可能的。

    【讨论】:

    • 唯一的解决方法是不要在另一个选项卡中打开链接。要么打开它替换当前页面,要么使用 iframe 将其他链接的内容嵌入到当前页面中。
    • 我正在重定向到不同的 webapp,所以我无法将其嵌入 iframe /替换当前页面。
    • 是的,我已经试过了,每次打开一个新标签。谢谢
    • 我认为这可能是“吸引用户注意力”的最佳选择。
    【解决方案4】:

    您最多可以尝试target="_blank"

    【讨论】:

      【解决方案5】:

      您可能可以使用_blank 和一些 JS 代码,这些代码使用 cookie 跟踪关闭先前打开的同一 URL 的选项卡。

      页面(您在新选项卡中打开的页面)应该以这样的方式构建,即它会写出一个带有某个值的 cookie(比如当前时间,以毫秒为单位)。它还应该有某种定期轮询器,用于检查此 cookie 的值,并在看到该值更改时自行关闭。此值可以更改的唯一方法是在另一个选项卡/弹出窗口中打开相同的 url。

      免责声明:不确定浏览器是否允许 window.close 而不被用户触发!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-21
        • 1970-01-01
        相关资源
        最近更新 更多