如何在Firefox中将焦点设置为已打开的选项卡?

时间:2011-11-21 06:35:34

标签: javascript html

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

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

但是,当我再次点击此链接时, 会刷新已打开的标签但不会将焦点设置为 ,因此用户无法知道该标签是否已打开

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

感谢。

5 个答案:

答案 0 :(得分:7)

使用tabhandler名称获取焦点可能会有所帮助..假设我们有

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

win.focus();

现在,每当上述代码的第一行运行时,浏览器首先会找到名称为 test 的标签,然后使用网址https://www.google.com重新加载,以防它找不到名称为测试的标签会打开一个新标签。在第二行的运行中,它将焦点设置为从第一行加载的相同选项卡。

答案 1 :(得分:6)

我的项目中遇到了类似的问题。 幸运的是,每当我需要将注意力集中在已打开的选项卡上时,它也需要刷新。 所以我使用以下技巧完成了它,它首先再次打开具有相同href和目标的选项卡,获得该窗口的引用,关闭它,然后使用相同的参数再次打开。

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

答案 2 :(得分:4)

没有。

每个标签通常在单独的流程沙箱中运行。这是不可能的。

答案 3 :(得分:1)

最多可以试用target="_blank"

答案 4 :(得分:0)

您可以使用_blank和一些JS代码,使用Cookie跟踪关闭之前打开的相同网址的标签。

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

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