【问题标题】:Detect if a web site is already open and reuse window检测网站是否已经打开并重用窗口
【发布时间】:2012-06-01 14:46:31
【问题描述】:

我正在尝试找出是否有办法在电子邮件中打开 url 链接并在某个页面(或站点)已经打开时重用一个窗口。 我所拥有的是一个“忘记密码”页面,用户输入他们的电子邮件地址并被问到一个安全问题,然后发送一封带有 url 链接的纯文本电子邮件(因此没有 html 链接属性)并向用户报告它有做得很好。当用户点击链接时,它会打开一个闪亮的新浏览器窗口并忽略旧的报告页面,让它感到悲伤和不受欢迎。我想知道是否有办法重用此窗口或更具体地说是忘记密码报告页面。也许我可以用 javascript 命名页面或检测 url 是否已经以某种方式打开。 或者,如果我确实决定使用 html 电子邮件,是否有可能,所以大多数人都会从中受益。

请帮助我的报告页面再次被爱和想要。 谢谢

我正在使用 PHP,我可以使用 javascript 或 jquery 浏览器端,或任何其他可能适合此的东西

【问题讨论】:

  • 没有(可靠的)方法可以做到这一点。我实际上不知道 任何 方法可以做到这一点,但我愿意相信(比如说)Outlook 和 IE 之间存在一些模糊的钩子,可能会允许它。
  • 你打开了window.open的窗口吗?
  • 你的页面有感觉吧? :)
  • 如果这可能,那将是一个安全问题(隐私)。
  • 我很高兴这是不可能的。

标签: php javascript url window


【解决方案1】:

这完全由浏览器决定;某些浏览器可能会猜到您要执行的操作并将现有选项卡替换为新页面,但总的来说这没有意义。

这是你可以做的(虽然它不是真正的技术):

  1. 输入并提交电子邮件后,表单页面发生变化,并要求他们提供发送给他们的安全代码。

  2. 在电子邮件中以清晰的方式打印安全代码,以便用户双击并复制到他们的剪贴板;然后他们会再次切换到他们的浏览器(您的页面仍然打开)并粘贴该值。当然,您仍然可以提供链接以方便用户使用。

顺便说一句,为了让用户可以轻松选择代码并复制到剪贴板,我发现使用base32 编码是最好的;即使使用 iOS 设备,也可以轻松选择这些代码。

【讨论】:

    【解决方案2】:

    您可以让电子邮件打开的页面发送postMessage 请求,并让其他页面的答案仍然打开。如果发生这种情况,新标签页可能会立即关闭。

    但是,选项卡/窗口之间的切换是在操作系统或浏览器级别发生的,而不是页面级别,并且无法使用 JavaScript 切换到打开的选项卡。你可以写一个浏览器扩展来做这件事,但这对于这么琐碎的事情可能是不合适的,而且没有人会费心安装它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-12
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      相关资源
      最近更新 更多