【问题标题】:How can I set the browser tab's anchor target name via javascript?如何通过 javascript 设置浏览器选项卡的锚定目标名称?
【发布时间】:2015-04-11 19:13:19
【问题描述】:

当从外部超链接调用我的网站时,如果它已经打开,则应在同一浏览器选项卡中重新打开它。 这可以通过在超链接的 HTML 中指定适当的目标属性来实现:<a href='http://my-website.org' target='my_target' /> 但是,如果在没有指定目标的情况下打开第一个选项卡,例如,这不起作用。 G。通过直接输入网站的网址。在此之后,使用 my_target 的超链接将拉出第二个浏览器选项卡。

所以,我想设置浏览器选项卡的默认目标名称,如果不存在,以确保使用此选项卡,如果此默认目标用于超链接。

如何在 JavaScript 中做到这一点?

【问题讨论】:

  • 不太可能。如果可以的话,您基本上可以分辨出用户打开了哪些标签。

标签: javascript html anchor browser-tab


【解决方案1】:

想想你所要做的就是

window.name = 'my_target'

如果这是第一个选项卡,它会将其标记为“my_target”。当任何带有

的链接

target='my_target'

现在单击它将在此选项卡/窗口中打开。

【讨论】:

  • 谢谢,如果我通过 javascript (window.open) 提取 url,这就像一个魅力。但是,如果我通过静态超链接尝试相同的操作,则会打开一个单独的选项卡(但如果我再次单击静态超链接,则会正确地重复使用)——就好像我在这里使用不同的目标一样。但我不是。我三重检查了两次:我使用的那些目标是一样的!有什么想法吗?
  • Verim,感谢您的测试!您的代码非常有意义,但是仍然无法在我这边工作(使用 FF 进行测试)。我的猜测是,一些奇怪的浏览器设置会强制 FF 在新选项卡中打开这些静态链接,而不管指定的目标是什么。会检查
  • 适用于 FF 47.0.1,但不适用于 Chrome 54.0.2840.71
  • 不适用于 Chrome。我命名了我的标签,然后通过电子邮件给自己发送了一个具有相同目标名称的链接,单击链接,没有任何反应。
  • 服务是否有可能通过更改页面 init/load 上的 window.name 来禁用旧浏览器的相同选项卡链接?
【解决方案2】:

在名称前加下划线:_my_target。这一直对我有用。但是,我确实看到标准名称(_blank、_parent、_self、_top)以外的名称被称为框架名称,并且框架现在已被弃用。尽管如此,任何带有前导下划线的自定义名称似乎都有效。优点是指向相同命名目标的链接将焦点放在关联的浏览器选项卡上。坏消息是,随着浏览器的更新,它可能有一天会停止工作。

【讨论】:

    猜你喜欢
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多