2010-03-10 25 views
2

我发誓上周我有这个工作,但是......有人知道如何获得在电子邮件中工作的同一页面hrefs吗?我正在使用这种格式;电子邮件内的同一页面链接

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

... 

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

其中在一个标准的网页自然的作品,但在电子邮件客户端查看时,它不会做任何事情(在雷鸟和Gmail迄今为止检测)。在电子邮件中甚至有可能实现同一页面链接?如果没有,是否有其他方法?

UPDATE:
使用ID确实会雷鸟工作,除非该邮件已被转发,则它停止工作。 ID在Gmail中不起作用,名称也不起作用。

+0

如果它在webmail查看器中不起作用,您应该检查它实际发送到浏览器的源代码。这可能会让你对Webmail查看器实际上做什么来破坏你的代码有所了解(例如,它可能会修改或去除ID)。至于桌面应用程序:你可能不太好运,因为他们的HTML支持可能相当粗略。 – 2010-03-10 12:09:12

回答

2

现在试试。 :)

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

... 

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

为什么这个工作时,ID不会?电子邮件客户端通常使用与浏览器相同的呈现引擎(Thunderbird使用Gecko和GMail使用......使用任何浏览器)。 (好的,我可以明白为什么它可能会**在GMail中工作,这取决于Google是如何净化HTML的,但是桌面客户端?) – Quentin 2010-03-10 11:30:44

+0

@MatW。你确定邮件是HTML吗? – raj 2010-03-10 11:53:59

+1

Erm ... No.实际上,ID甚至可以覆盖名称。再也没有真正的理由在表单之外使用name属性了(当然不适用于锚)。我想,HTML5完全将名称属性放在锚上。请参阅http://stackoverflow.com/questions/484719/html-anchors-with-name-or-id也http://www.w3.org/TR/REC-html40-971218/struct/links.html#h -12.2.3 – 2010-03-10 12:00:40

0

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

+1

而不是说所有人都没有一个答案,你至少可以说明我的问题中提到的一个客户的答案。 – Mathew 2010-03-10 11:55:09

+0

@MatW:由于您的问题不是“我如何在这两个电子邮件客户端之一中完成这项工作?”但包括“迄今为止在Thunderbird和Gmail上测试过的**”这样的措辞,似乎你并不想为其中一个可用的客户端做一个快速修复,而是一个通用的解决方案。 – 2010-03-10 13:40:52

+0

够公平的,但为什么花时间键入一个不回答? – Mathew 2010-03-10 14:58:43

0

为什么不试试

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

... 

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

在相同的链接,不是很好 - 但可能得到它在几个客户的工作。