为什么Twitter和Google API文档不会在网址中编码&符号?

时间:2012-01-16 00:43:11

标签: html url cross-browser html-entities

have read我应该在HTML中将我的&号编码为& 然而,来自受尊敬公司的众多代码样本忘记这样做

只有几个例子:

Google Web Fonts示例代码:

<link href='http://fonts.googleapis.com/css?family=PT+Sans&subset=latin,cyrillic' rel='stylesheet' type='text/css'>

Google Maps文档:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=ja">

Twitter Anywhere官方教程:

<script src="http://platform.twitter.com/anywhere.js?id=YOUR_API_KEY&v=1" type="text/javascript"></script>

在链接中转出&符号是否有任何实际好处? 这与浏览器怪癖有关吗?这只是文档中的错误吗?

  

亲爱的回答者,请确保您正在回答正确的问题。

     

我知道我应该按规格逃避&符号。我也知道为什么这个机制首先被发明了。我不是asking about this。我的问题是:

     

受尊敬的公司 API原因是否经常违反此规则?

2 个答案:

答案 0 :(得分:5)

这里有两种不同的背景。

  1. 在javascript href的上下文中,&amp;很好,不应该编码。
  2. 在HTML链接中&amp;是被禁止的,应该被逃脱。
  3. 在HTML链接上下文中,在将地址传递给HTTP进程之前,将解码HTML字符实体; URL编码的字符不会,因为服务器可以直接读取它。

答案 1 :(得分:4)

  

链接中的&符号是否有任何实际好处?

它节省了一些按键。

  

这与浏览器怪癖有关吗?

没有

  

这只是文档中的错误吗?

  

有值得公司的API文档是否经常违反此规则?

无知和/或懒惰。浏览器执行错误恢复,因此他们要么没有注意到错误,要么他们不关心。文档可能不是由他们最好的专家编写的。