以下网址的行为是否存在任何差异。
我不知道为什么插入了&
,它有什么区别吗?
www.testurl.com/test?param1=test&current=true
与
www.testurl.com/test?param1=test¤t=true
答案 0 :(得分:90)
&
是“字符参考开头”的HTML。
&
是“An&符”的字符引用。
¤t;
不是标准字符引用,因此是错误(浏览器可能会尝试执行错误恢复,但您不应该依赖于此)。
如果您使用字符引用作为真实字符(例如™
),那么它(™)将出现在网址中而不是您想要的字符串中。
(请注意,根据您使用的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时,应该用&
替换&符号。
请注意,将
&
替换为&
;仅在编写URL时完成 HTML,其中"&"
是一个特殊字符(以及“&lt;”和“&gt;”)。什么时候 在纯文本电子邮件或位置中写入相同的URL 您的浏览器栏,您将使用"&"
而非"&"
。用HTML, 浏览器将"&"
转换为"&"
,以便Web服务器只能看到"&"
而不是请求的查询字符串中的"&"
。
希望这会有所帮助:)
答案 3 :(得分:0)
这是一个很好的例子。将¤t
解析为到文本节点时,会将其转换为¤t
。将解析为属性值时,会将其解析为¤t
。
如果您希望文本节点中有¤t
,则应在标记中写下&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;