我有一个链接可以在firefox的新标签页中打开一个页面。
<a target="_default" href='/portal.html' >
Go to Portal
</a>
但是,当我再次点击此链接时, 会刷新已打开的标签但不会将焦点设置为 ,因此用户无法知道该标签是否已打开
有没有什么方法可以抓住打开的标签,并在打开一次或任何其他解决方法后将注意力集中在后续点击上。
感谢。
答案 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而不会被用户触发!