什么时候HTML实体未解析?

时间:2016-12-27 12:44:44

标签: html html-entities

我遇到了一些我觉得有点奇怪的事情......有一个网站上有<table>音频文件链接,作者等。

链接如下:

<a href="Links/Audio/audio_file_1.mp3">This & That</a>

我发现奇怪的是&字符在源文件中没有写为&amp;。如果我使用Chrome开发工具(或Firefox)并将内容更改为This &amp; That,则可以看到字符串&amp;,而不仅仅是&字符。那是为什么?

该表正在使用TableSorter,我认为可以在引擎盖下执行此操作...但即使我在禁用Javascript的情况下打开它,仍会显示原始&字符,以便似乎不是罪魁祸首。

2 个答案:

答案 0 :(得分:2)

  

什么时候HTML实体未解析?

他们不是。 HTML正在被读取时被解析。这完全独立于JavaScript。

  

我发现&字符不是&amp;在源文件中。

确实应该如此,但它的工作方式是正确的,因为浏览器可以优雅地处理无效标记,事实上,特定方面现在在规范中编码:不是ambiguous的&符号被视为文字&符号。

  

如果我使用Chrome开发工具(或Firefox)并将内容更改为This &amp; That,则可以看到字符串&amp;,而不仅仅是&个字符。那是为什么?

当您通过Chrome的devtools及类似工具查看DOM时,您会看到以有效形式而非实际源文件显示的实时DOM,因此浏览器自然会向您显示&&amp; (它应该在源文件中的实体)。

答案 1 :(得分:1)

这与Javascript无关。

& &amp; 具有相同的HTML编号:{ {1}},这也是这些符号的ASCII Dec规定。您可以在此处查看:http://www.ascii.cl/htmlcodes.htm

所以我猜您的代码存在问题,应该在屏幕上将它们视为相同的符号( &amp; )。