什么是 & amp

以下网址的行为有什么不同吗。

我不知道为什么要插入 &,有什么区别吗?

www.testurl.com/test?param1=test&current=true

VS

www.testurl.com/test?param1=test&current=true
849657 次浏览

&是“字符引用开始”的 HTML。

&是“ An ampersand”的字符引用。

&current;不是一个标准的字符引用,因此是一个错误(浏览器可能会尝试执行错误恢复,但您不应该依赖于此)。

如果你为一个真正的字符使用一个字符引用(例如 ™) ,那么它(& trade;)将出现在 URL 中,而不是你想要的字符串。

(请注意,根据您使用的 HTML 版本,您可能必须以 ;结束字符引用,这就是为什么 &trade=将被视为 & trade; 。如果下一个字符是非单词字符(比如 =) ,HTML 4允许省略它,但是一些浏览器(Hello Internet Explorer)对此有问题)。

HTML 不能识别 &,但它能识别 &,因为它等于 HTML 中的 &

我看了一下有人发的这个帖子: http://www.webmasterworld.com/forum21/8851.htm

我的来源: http://htmlhelp.com/tools/validator/problems.html#amp

当包含包含 & 符号(“ &”) :

这是无效的:

A href = “ foo.cgi

说明:

此示例为“未知实体部分”生成错误,因为 假设 "&"开始一个实体引用。浏览器经常 安全地从这种错误中恢复,但是真正的问题确实发生在 在这个例子中,许多浏览器正确地转换 & copy = 3 可能导致链接失败。因为 & lang; 是 HTML 实体的左指向角括号,一些浏览器也转换 一个老的浏览器甚至找到了实体 & sect; , 转换 & 剖面 = 2到离子 = 2。

因此,这里的目标是避免问题,当您试图验证您的网站。因此,当您在标记中编写 URL 时,应该使用 &替换与号。

注意,只有在将 URL 写入 HTML,其中 "&"是一个特殊字符(以及“ <”和“ >”) 在纯文本电子邮件信息或位置中写入相同的 URL 在浏览器的工具栏中,您将使用 "&"而不是 "&amp;" 浏览器将 "&amp;"转换为 "&",因此 Web 服务器只能看到 "&" 而不是请求的查询字符串中的 "&amp;"

希望这对你有帮助:)

这是个很好的例子。当解析 &current时,进入文本节点被转换为 ¤t。当解析 转换为属性值时,它被解析为 &current

如果希望在文本节点中使用 &current,则应在标记中编写 &amp;current

血淋淋的细节在 HTML5解析规范-命名字符引用状态

如果你正在做一个字符串。 制造:

let linkGoogle = 'https://www.google.com/maps/dir/?api=1';
let origin = '&origin=' + locations[0][1] + ',' + locations[0][2];




aNav.href = linkGoogle + origin;