【问题标题】:How to detect if user has already opened an url and redirect to same if already opened?如何检测用户是否已经打开了一个 url,如果已经打开,则重定向到相同的 URL?
【发布时间】:2013-06-25 03:06:29
【问题描述】:

谁能告诉我如何检测用户是否已经打开了链接/网址选项卡,如果网址已经打开,是否可以将链接重定向到活动的浏览器选项卡?

例如:用户单击链接,js 代码将在浏览器中打开一个新选项卡。现在,如果用户再次单击该链接,我希望他重定向到活动会话而不是打开一个新选项卡。

我阅读了以下帖子,但无法根据它们实现我的逻辑:

Java: ensure web application open only in one browser tab
Possible to detect if a user has multiple tabs of your site open?

我正在使用简单的 window.open(url) 在新标签页中打开我的网址。

谢谢....

【问题讨论】:

  • 我很确定这会侵犯隐私。无论如何,这些链接是否来自同一个域?
  • 是的,它们用于同一个域,我们正在执行 SSO 以进行验证,因此安全违规不是问题。
  • 我说的是隐私,而不是安全 :) 我认为您需要检查客户端的浏览器历史记录才能执行您的任务。这是不允许的(不再)。
  • 哦!是的,很抱歉。但以下解决方案对我来说效果很好。我是 UI 新手,仍在学习所有技巧和窍门 :)

标签: javascript jquery redirect client-side


【解决方案1】:

如果您为打开的窗口命名,它会在第二次重新打开时以相同的方式重新打开

    window.open(url,"mypopup");

【讨论】:

  • 嗨,埃里克,以上内容是否有可能不会刷新/重新加载网址?现在上面运行良好,但每次它重新加载我的客户不想要的窗口。
  • window.open 返回一个窗口对象。您可以使用它来了解窗口何时已经打开并专注于它而不是重新加载参见示例:jsfiddle.net/DfpG5
【解决方案2】:

在 javascript 中使用目标/窗口名称来做到这一点

window.open(yoururl, youruniquewindowname)

例子

window.open("https://stackoverflow.com/", "stack_unique_123")

如果带有 stack_unique_123 的窗口已经打开,“https://stackoverflow.com/”将在该窗口中重新加载,从而阻止打开新窗口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 2021-01-28
    • 2011-07-28
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多