【问题标题】:Detect if a page is opened in a new tab [duplicate]检测页面是否在新选项卡中打开[重复]
【发布时间】:2018-11-21 18:58:12
【问题描述】:

我正在实现一个“返回”按钮,该按钮将用户重定向到上一页或在新标签页中打开页面时关闭当前标签页。

如果页面在新标签页中打开,我如何检测(服务器端或客户端)?

我的解决方案是在每个<a> 标记的每个href 属性中使用target="_blank" 传递一个参数(例如"new_tab=1"),这样我就可以在页面加载事件中读取该参数,但我希望在更快的解决方案。

【问题讨论】:

标签: javascript jquery asp.net


【解决方案1】:

您可以查看history.length 属性以查看堆栈中页面的长度,history.length === 1 表示新标签。

https://developer.mozilla.org/en-US/docs/Web/API/History

【讨论】:

  • 我看不出这将如何表明客户端是否在新选项卡中打开了新页面。如果新标签页打开后,用户导航怎么办?
  • 好吧,一旦用户导航,该选项卡将不会被视为新选项卡,因此 OP 的“返回”按钮应该可以工作。
  • OP 表示在新选项卡中打开的窗口中单击返回应该关闭该窗口。因此,如果打开一个新选项卡并且用户导航然后单击返回,则该窗口应该关闭。在您的情况下,他们只会返回上一页。
  • 我阅读 OP 问题的方式是,如果没有可返回的页面,则该选项卡应关闭。如果您不是这样阅读,我很抱歉。
  • 如果页面在新标签页中打开,则关闭当前标签页
猜你喜欢
  • 1970-01-01
  • 2023-03-30
  • 2011-04-23
  • 1970-01-01
  • 1970-01-01
  • 2012-09-26
  • 1970-01-01
  • 2010-10-25
  • 1970-01-01
相关资源
最近更新 更多