2010-04-06 259 views
4

林与中有一个连字符的电子邮件地址工作, 用户想要一个“联系我们”链接打开了一个新的消息,机智他们的地址居住, 我通常使用的href,但&符号导致这不起作用, 任何想法的?符号的电子邮件地址(HREF)

这里就是我目前所面对的:

<a href="mailto:L&[email protected]? subject=MessageTitle&amp;" 
     style="font-family: Verdana; font-size: large; font-weight: bold; color: #800000">#GHA Organisation Development</a> 

回答

8

使用&amp;而非纯&。您的href网址位于HTML内部,因此需要将其正确转义为有效的HTML。

+3

+风格外部样式表,而不是使用在线声明 – dusoft 2010-04-06 10:49:22

+0

你的CSS是直接交换的话,&为&? – DarkW1nter 2010-04-06 10:56:49

+0

@d达利:是的,永远。 – 2010-04-06 11:01:11

3

其实,这是不暧昧符号,所以它是完全有效的使用您建议的HTML。目前接受的答案是不正确的(尽管我同意总是编码&符号以避免混淆是一个好主意)。

的HTML规范定义不明确的和号如下:

的暧昧符号是一个U + 0026 AMPERSAND字符(&),其随后在范围内的一个或多个字符U + 0030数字零(0 )至U + 0039数字九(9),U + 0061拉丁文小写字母A至U + 007A拉丁文小写字母Z,以及U + 0041拉丁大写字母A至U + 005A拉丁大写字母Z,然后是U + 003B SEMICOLON字符(;),其中这些字符与命名字符引用部分中给出的任何名称都不匹配。

实体中不分号结束(如&amp)被不同属性值的处理,虽然:

如果字符引用被消耗作为属性的一部分,并且最后字符匹配不是U + 003B SEMICOLON字符(;),并且下一个字符是U + 003D EQUALS SIGN字符(=)或在U + 0030 DIGIT ZERO(0)到U + 0039 DIGIT NINE(9) ),U + 0041拉丁大写字母A到U + 005A拉丁大写字母Z或U + 0061拉丁小写字母A到U + 007A拉丁小写字母Z然后,由于历史原因,所有在U +0026安培字符(&)必须是未消耗的,并且不返回任何内容。

但是这里不适用,因为下一个字符是@

FWIW,我看一遍研究这一点,并在这里写关于我的发现:http://mathiasbynens.be/notes/ambiguous-ampersands

我还创建了an online tool,你可以用它来检查您的标记为不结束模糊的&符号或者字符引用分号,这两个都是无效的。 (无HTML验证目前这是否正确。)

http://i.stack.imgur.com/nyGPK.png