HTML 个实体何时未被解析?

When are HTML entities left unparsed?

我 运行 发现了一些我觉得有点奇怪的东西...有一个网站有 <table> 的音频文件 link,作者等

link 看起来像:

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

奇怪的是&字符在源文件中没有写成&amp;。如果我使用 Chrome Dev Tools(或 Firefox)并将内容更改为 This &amp; That,则字符串 &amp; 是可见的,而不仅仅是 & 字符。这是为什么?

table 正在使用 TableSorter,我认为这可能是在幕后进行的...但即使我在禁用 Javascript 的情况下打开它,原始 & 字符仍然显示,所以这似乎不是罪魁祸首。

When are HTML entities left unparsed?

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

I found it strange that the & character is not written as & in the source file.

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

If I use the Chrome Dev Tools (or Firefox) and change the content to This &amp; That, the string &amp; is visible, instead of just the & character. Why is that?

当您通过 Chrome 的开发工具和类似工具查看 DOM 时,您会看到以有效形式表示的实时 DOM,而不是实际的源文件,所以很自然浏览器向您显示 &&amp;(它应该在源文件中的实体)。

这独立于 Javascript。

&&amp;&#38; 具有相同的 HTML 编号,这也是这些符号的 ASCII Dec 规定。你可以在这里看看:http://www.ascii.cl/htmlcodes.htm

所以我猜你的代码有问题,它们在你的屏幕上应该被视为相同的符号 (&) .