在特定选项卡中打开链接 - 来自电子邮件
Posted
技术标签:
【中文标题】在特定选项卡中打开链接 - 来自电子邮件【英文标题】:Opening links in a specific tab - from an email 【发布时间】:2012-08-18 22:07:06 【问题描述】:我的网站上有一个注册系统,它使用常见的激活电子邮件技巧。 此电子邮件仅包含说明和指向我网站上激活页面的链接。 所以假设我在网站上注册,打开一个新标签来检查我的电子邮件,然后单击链接,该链接将在另一个新标签中打开,导致网站上打开两个标签(顺便说一句,其中一个仍然告诉他们检查他们的邮件)。
有没有办法让电子邮件中的链接在我网站的第一个选项卡中打开? (如果前一个标签已关闭或移至另一个域,则打开一个新标签)。
感谢您的任何帮助/建议!
【问题讨论】:
我认为这是不可能的,但如果是这样,那就太棒了(IMO),尽管有人可能已经浏览到另一个选项卡中的新页面并且可能不一定希望它是重定向到激活页面。 @JamWaffles 我同意! :) 理想情况下,它会检查我的域上是否打开了一个选项卡,并且:如果有,请打开该选项卡中的链接,如果没有在新选项卡中打开它,正常。 另一种可能性是注册页面定期检查帐户是否已激活,如果已激活,则重定向到他们的帐户页面。像这样至少他们不会看到“去检查你的电子邮件!”;有些人对这些东西感到非常困惑(我在测试/调试时也是如此) 【参考方案1】:您可以使用 javascript 分配命名当前窗口/选项卡:
<script type="text/javascript">
this.name = "mainWindow";
</script>
然后您使用该名称作为链接中target
属性的值,例如
<a href="nextPage.html" target="mainWindow">...
如果mainWindow
尚不存在(或不存在),它将在新选项卡中打开。
更新
以上内容并不能解决 OP 的问题,因为对于从电子邮件打开的链接,target
属性通常不会从 MUA 传输到浏览器(可能对于 webmailers 除外,但我们不能依赖此)。所以我在想某种登陆页面,它使用 JavaScript 来达到预期的效果:
-
如果目标窗口/选项卡 `mainWindow` 已打开,请将其聚焦,在那里执行激活,然后关闭自己。
如果目标窗口/选项卡不存在,请在我们所在的位置执行激活。
如果这行得通,在它自行关闭之前,您只会看到第二个打开的标签片刻(案例 1)。然而,“关闭自己”是不可能的,正如我了解到的 here 和 here - 所以最后会留下一个多余的标签,这应该避免。好像做不到,抱歉!
【讨论】:
我也有同样的想法。但你试过了吗? 我?嗯,是的——您甚至可以通过 JavaScript 访问窗口/选项卡并调用函数或修改其 DOM。唯一的限制 (AFAIK) 是两个页面必须来自同一个域。 谢谢!然而,恐怕这还不够。您取决于用户的 MUA 如何在默认浏览器中打开 URL。用 Thunderbird + Firefox 尝试过,它确实不传输target
属性,所以重复点击同一个链接每次都会打开一个新标签。
非常感谢您的好回答! (+1 btw)但正如你所说,这可能还不够,因为“两个页面必须来自同一个域”......还没有尝试过,但看起来真的做不到(还考虑了人们访问邮件的各种不同方式……)。 :(
关于编辑:从技术上讲,“关闭自己”是可能的(请参阅this 答案),但它变得有点复杂,至少现在和这个应用程序不值得。但无论如何感谢您的大力帮助,我相信这项技术也会在其他地方派上用场!以上是关于在特定选项卡中打开链接 - 来自电子邮件的主要内容,如果未能解决你的问题,请参考以下文章