2

尝试使用 W3C 验证器验证以下 HTML 将引发 3 个错误(截至 2013-10-30):

<!DOCTYPE html>
<head><title>asdf</title></head>
<img src="http://maps.googleapis.com/maps/api/staticmap?zoom=13&size=279x183&markers=50.916780,5.347420&sensor=false" alt="map">

3个错误都是一样的:

& 没有开始字符引用。(& 可能应该被转义为 &。)

不幸的是,这里符合 W3C 将导致静态地图图像不被渲染。尝试img使用以下 URL 嵌入标签作为其src属性的值:

<img src="http://maps.googleapis.com/maps/api/staticmap?zoom=13&amp;size=279x183&amp;markers=50.916780,5.347420&amp;sensor=false">

这会返回 Google 的错误,说明:

Google Maps API 服务器拒绝了您的请求。无效的请求。缺少“大小”参数。

为什么 Google 静态地图 API 不支持带有&amp;查询字符串的有效 URL?

4

1 回答 1

2

您正确地转义了&字符。

请注意,您不能将带有转义 & 符号的 URI 直接输入到浏览器的地址栏中。它仅在 HTML 中使用时才有效(即 inhrefsrc属性)。

有问题的URL 可以完美地用作链接(也可以用作图像)。


请注意,您可能不必转义这些& 符号(因为它们似乎是明确的);但要始终保持安全,只需将它们全部逃脱即可。

于 2013-11-02T03:07:42.120 回答