电子邮件中的同页链接

3

我发誓上周这个还能用,但是...有没有人知道如何在电子邮件中实现同一页的href链接?我正在使用这个格式;

<a href="#targetelement">quicklink</a>

...

<div id="targetelement">Hello there</div>

这在标准网页中可以正常工作,但在电子邮件客户端中无法执行任何操作(目前已在Thunderbird和Gmail中进行了测试)。在电子邮件中是否可能实现同页链接?如果不行,是否有替代方法?

更新:
使用id实际上在Thunderbird中可以正常工作,除非邮件已被转发,否则它将停止工作。id在Gmail中不起作用,name也不起作用。


如果在Webmail查看器中无法正常工作,您应该检查它实际发送到浏览器的源代码。这可能会让您了解Webmail查看器实际上正在执行什么操作来破坏您的代码(例如,它可能会修改或剥离ID)。至于桌面应用程序:由于它们对HTML的支持可能相当不稳定,您可能无法得到什么帮助。 - Alan Plum
4个回答

3
现在尝试一下这个。 :)
<a href="#targetelement">quicklink</a>

...

<a name="targetelement">Hello there</a>

为什么这个能起作用而id不能?电子邮件客户端通常使用与浏览器相同的渲染引擎(Thunderbird使用Gecko,GMail使用...用户使用的任何浏览器)。 (好吧,我可以看出为什么它可能在GMail中起作用,这取决于Google对HTML进行了什么样的净化,但桌面客户端呢?) - Quentin
@MatW。你确定这封邮件是HTML格式的吗? - raj
1
额...不。实际上,ID甚至可以覆盖名称。现在除了表单之外,没有真正的理由再使用名称属性了(当然不是用于锚点)。HTML5完全删除了锚点上的名称属性,我想。请参见https://dev59.com/BXRB5IYBdhLWcg3w3K8J以及http://www.w3.org/TR/REC-html40-971218/struct/links.html#h-12.2.3。 - Alan Plum
抱歉,我删除了之前的评论 - 我没有足够注意你的代码,并且没有使用<a>标签。这在Gmail中可以工作,但在Thunderbird中不行。Gmail需要名称和<a>标签作为目标,而Thunderbird需要ID。 - Mathew

0

为什么不试试呢

<a href="#targetelement">quicklink</a>

...

<a name="targetelement" id="targetelement">Hello there</a>

在相同的链接中,不太好看 - 但可能在多个客户端中能够运行。

0

这完全取决于邮件客户端(桌面或基于Web的),不同的客户端使用不同的规则集和引擎来解析和显示电子邮件,因此没有明确的答案。


1
与其说没有一个通用答案,你至少可以举例说明我问题中提到的一个客户的答案。 - Mathew
@MatW:由于你的问题不是“如何使这个在两个电子邮件客户端中之一工作?”而包括“到目前为止已在Thunderbird和Gmail中测试”的措辞,因此似乎你不想要一个可用客户端的快速修复方法,而是一个通用解决方案。 - code_burgar
好的,但是那为什么要花时间打一个无关紧要的回答呢? - Mathew

0

这段代码运行良好!

<a href="#test">Lorem Ipsum</a>
<div id="test">
<a href="test" name="test" jumpthis="test">Lorem Ipsum</a>
</div>

删除 jumpthis="test",链接就可以在 Outlook 2013 中正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接