什么是&用于

时间:2012-01-31 17:39:00

标签: html forms html5

以下网址的行为是否存在任何差异。

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

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

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

5 个答案:

答案 0 :(得分:90)

&是“字符参考开头”的HTML。

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

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

如果您使用字符引用作为真实字符(例如™),那么它(™)将出现在网址中而不是您想要的字符串中。

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

答案 1 :(得分:3)

Html无法识别&但它会识别&,因为它=&在HTML中

我查看了有人发过的帖子:http://www.webmasterworld.com/forum21/8851.htm

答案 2 :(得分:2)

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

  

包含包含的URL时会发生另一个常见错误   &符号(“&”):

这是无效的:

  

a href =“foo.cgi?chapter = 1& section = 2& copy = 3& lang = en”

说明:

  

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

因此,此处的目标是在您尝试验证网站时避免出现问题。因此,在标记中写入URL时,应该用&amp;替换&符号。

  

请注意,将&替换为&amp;仅在编写URL时完成   HTML,其中"&"是一个特殊字符(以及“&lt;”和“&gt;”)。什么时候   在纯文本电子邮件或位置中写入相同的URL   您的浏览器栏,您将使用"&"而非"&amp;"。用HTML,   浏览器将"&amp;"转换为"&",以便Web服务器只能看到"&"   而不是请求的查询字符串中的"&amp;"

希望这会有所帮助:)

答案 3 :(得分:0)

这是一个很好的例子。将&current解析为到文本节点时,会将其转换为¤t。将解析为属性值时,会将其解析为&current

如果您希望文本节点中有&current,则应在标记中写下&amp;current

血腥的细节在这里:http://dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference

答案 4 :(得分:-1)

,如果您要输入一个字符串。 制作:

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


aNav.href = linkGoogle + origin;