我遇到了一些我觉得有点奇怪的事情......有一个网站上有<table>
音频文件链接,作者等。
链接如下:
<a href="Links/Audio/audio_file_1.mp3">This & That</a>
我发现奇怪的是&
字符在源文件中没有写为&
。如果我使用Chrome开发工具(或Firefox)并将内容更改为This & That
,则可以看到字符串&
,而不仅仅是&
字符。那是为什么?
该表正在使用TableSorter,我认为可以在引擎盖下执行此操作...但即使我在禁用Javascript的情况下打开它,仍会显示原始&
字符,以便似乎不是罪魁祸首。
答案 0 :(得分:2)
什么时候HTML实体未解析?
他们不是。 HTML正在被读取时被解析。这完全独立于JavaScript。
我发现
&
字符不是&amp;在源文件中。
确实应该如此,但它的工作方式是正确的,因为浏览器可以优雅地处理无效标记,事实上,特定方面现在在规范中编码:不是ambiguous的&符号被视为文字&符号。
如果我使用Chrome开发工具(或Firefox)并将内容更改为
This & That
,则可以看到字符串&
,而不仅仅是&
个字符。那是为什么?
当您通过Chrome的devtools及类似工具查看DOM时,您会看到以有效形式而非实际源文件显示的实时DOM,因此浏览器自然会向您显示&
为&
(它应该在源文件中的实体)。
答案 1 :(得分:1)
这与Javascript无关。
&
和 &
具有相同的HTML编号:{ {1}},这也是这些符号的ASCII Dec规定。您可以在此处查看:http://www.ascii.cl/htmlcodes.htm
所以我猜您的代码存在问题,应该在屏幕上将它们视为相同的符号( &amp; )。