我正在使用带有与号的电子邮件地址, 用户想要一个“联系我们”链接,以打开一条新消息,并填充他们的地址, 我通常使用 href,但 & 符号导致它不起作用, 有什么想法吗?

这就是我现在所拥有的:

<a href="mailto:L&D@gha.org.uk? subject=MessageTitle&amp;" 
        style="font-family: Verdana; font-size: large; font-weight: bold; color: #800000">#GHA Organisation Development</a>
有帮助吗?

解决方案

使用 &amp; 而不是普通的 &. 。您的 href URL 位于 HTML 内部,因此需要对其进行正确转义才能成为有效的 HTML。

其他提示

其实,这是 不是 一个 不明确的&符号, ,因此使用您建议的 HTML 是完全有效的。当前接受的答案是不正确的(尽管我同意始终对&符号进行编码以避免混淆是个好主意)。

HTML 规范定义了不明确的 & 符号,如下所示:

不明确的与号是 U+0026 与号字符 (&),后跟 U+0030 数字零 (0) 到 U+0039 数字九 (9)、U+0061 拉丁小写字母 A 到 U+0039 数字九 (9) 范围内的一个或多个字符U+007A 拉丁文小写字母 Z 和 U+0041 拉丁文大写字母 A 到 U+005A 拉丁文大写字母 Z,后跟 U+003B 分号字符 (;),其中这些字符与命名字符参考部分。

不以分号结尾的实体(例如 &amp) 但属性值的处理方式有所不同:

如果字符引用作为属性的一部分使用,并且匹配的最后一个字符不是 U+003B 分号字符 (;),并且下一个字符是 U+003D 等号字符 (=) 或在范围内U+0030 数字零 (0) 到 U+0039 数字九 (9)、U+0041 拉丁文大写字母 A 到 U+005A 拉丁文大写字母 Z,或 U+0061 拉丁文小写字母 A 到 U+007A 拉丁文小写字母 Z ,那么,由于历史原因,U+0026 与字符(&)之后匹配的所有字符都必须被取消,并且不返回任何内容。

但这并不适用于此,因为下一个字符是 @.

FWIW,我对此进行了彻底的研究,并在这里写下了我的发现: http://mathiasbynens.be/notes/ambiguously-ampersands

我也创建了 一个在线工具 您可以使用它来检查标记中是否有不明确的&符号或不以分号结尾的字符引用,这两者都是无效的。(当前没有 HTML 验证器可以正确执行此操作。)

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top