1

每次验证时出现错误:

<iframe class="forecast" src="http://forecast.io/embed/&num;lat=-26.201560&amp;lon=28.038995&amp;name=Johannesburg,%20ZA&amp;text-color=&num;ffffff&amp;color=&num;ffffff&amp;font=Helvetica&amp;units=ca"></iframe>

错误(截图): http: //postimg.org/image/5h1kvzzuh/

我逃脱了角色,但它没有用。谢谢。

4

1 回答 1

3

W3C 验证器维护者在这里。简短的回答是,改用以下内容:

<iframe class="forecast" src="http://forecast.io/embed/%23lat=-26.201560&amp;lon=28.038995&amp;name=Johannesburg,%20ZA&amp;text-color=&num;ffffff&amp;color=%23ffffff&amp;font=Helvetica&amp;units=ca"></iframe>

也就是说,修复只是替换&num;%23(字符的百分比编码#)。

解释

该 URL 中的具体问题是&num;它包含的字符引用。

&num;#(“数字符号”或“哈希”字符),根据 URL 标准,它不是有效的 URL 代码点,因此不允许在 URL 中使用。

#字符只允许在带有片段的绝对 URL或带有片段的相对 URL 中使用——然后,仅在URL 规范定义为实际 URL 的部分之后才明确允许。

并且对于 URLs 来说,&num;#完全一样的。

因此,您必须将其用作%23(即percent-encoded)。


PS 我计划更新验证器中的 URL 检查器,以实际报告它在 URL 中发现的特定非法字符,但我还需要一段时间才能进行改进。

于 2015-09-27T03:38:58.527 回答