Javascript 如何获取当前浏览器选项卡的句柄

Javascript 如何获取当前浏览器选项卡的句柄,javascript,html,Javascript,Html,在我的主页中,有一个锚定链接指向我在新选项卡中打开的页面。现在这个页面有一个链接指向我的主页。因此,我的问题是如何在现有选项卡中定位主页 假设我的主页为Home.html,链接为PageA.html,设置如下- <a href="PageA.html" target="pagea">Page-A</a> 这允许我始终在现有选项卡中打开PageA(如果已打开)。现在我想从这个页面打开主页,那么如何设置锚定标记,以便它在Home.html的已经打开的选项卡中打开主页呢

在我的主页中,有一个锚定链接指向我在新选项卡中打开的页面。现在这个页面有一个链接指向我的主页。因此,我的问题是如何在现有选项卡中定位主页

假设我的主页为Home.html,链接为PageA.html,设置如下-

<a href="PageA.html" target="pagea">Page-A</a>

这允许我始终在现有选项卡中打开PageA(如果已打开)。现在我想从这个页面打开主页,那么如何设置锚定标记,以便它在Home.html的已经打开的选项卡中打开主页呢

所以,基本上用户可以点击一个链接,在一个新的选项卡中打开它的页面,如果它还不存在,但是如果它存在,应该打开现有的选项卡。因此,在上述场景中,最多应打开2个选项卡。这是我们的门户网站的一项要求

非常感谢


[编辑文章以简化问题,只需2页]

我认为您可以像将a页和b页链接到主页那样链接主页。 下面的例子

主页:

<li><a href="Page-A.html" onclick="new_page('Page-A.html')" >Page-A</a></li>
<li><a href="Page-B.html" onclick="new_page('Page-B.html')">Page-B</a></li>
然后,此函数在其单个选项卡中打开主页,这是您想要的:)


希望这有帮助:)

当用户单击带有
目标属性集的链接时,会发生以下两种情况之一:

  • 具有该名称的现有“浏览上下文”(窗口/选项卡/框架)用于显示链接的资源
  • 创建一个新的“浏览上下文”(通常是一个新选项卡),并将其名称设置为指定值
当从没有
目标的链接加载页面时,或者通过直接键入URL加载页面时,不会为其分配名称。它要么没有名称,要么保留以前某个操作设置的名称

因此,为了链接回您没有创建的选项卡,您需要使用JS通过设置为其命名

最简单的方法是在任何页面加载后立即无条件地命名窗口;如果名称已设置,则再次设置并不重要,但如果未设置,这将确保它具有您可以知道和依赖的值。简单地说:

  • 在Home.html中,使用
  • 在PageA.html中,使用
  • 无论在哪里,都可以使用
您可能希望更聪明一点,只在用户遵循的链接未设置名称时才指定名称。例如:

  • 在所有页面上,包括
  • 指向主页的链接可以使用
    ,这意味着无论第一次打开哪个页面,它们都将始终占据最旧的选项卡
  • 指向其他页面的链接可能指向特定选项卡,例如

听起来您想使用javascript在选项卡之间进行通信。选中此项:我也认为我会重新考虑您的用户体验。您所说的“已打开的选项卡”是什么意思?如果您没有指定目标,并且您已经有成功的代码按名称指向不同的选项卡,则当前选项卡中将始终打开一个链接,所以我不确定你在追求什么。也许你在寻找?编辑我的问题-打开现有选项卡的链接是我们的要求!我会检查javascript的方式。我还是不明白。您显示的代码成功地将所有内容保存在两个选项卡中;为什么把所有的东西都放在三个标签里会更难呢?这不是在同一个标签里打开所有的链接吗?我们想在它自己的标签中打开每个链接。哦,好吧,我明白你的意思,这个链接会在一个标签中打开,我有你的solution@user3231682我已经更新了代码,现在应该可以用你想要达到的效果了:)谢谢。但是现在链接总是在新的标签页中打开,但是如果已经在标签页中打开了,就永远不会到现有的标签页。是的,这段代码很难做到,因为一个标签页总是在一个标签页中打开,而另一个标签页总是在新的标签页中打开,我不确定是否有代码谢谢你的解决方案,并进行了详细的说明。
<li><a href="Home.html" onclick="new_page('Home.html')">Home</a></li>
<li><a href="Page-B.html" onclick="new_page('Page-B.html')">Page-B</a></li>
<li><a href="Home.html" onclick="new_page('Home.html')">Home</a></li>
<li><a href="Page-A.html" onclick="new_page('Page-A.html')">Page-A</a></li>
function new_page(url) {
      var win = window.open(url, '_blank');
      win.focus();
    }