gpt4 book ai didi

javascript - 对 HTML 实体代码和原始代码之间的区别感到困惑

转载 作者:行者123 更新时间:2023-11-28 13:16:29 28 4
gpt4 key购买 nike

代码(jsFiddle):

<script>
function f(input) {
return '<article>' + input + '</article>';
}
document.write(f('<script>alert(1)<\/script>')); //alert 1
document.write(f('&lt;script&gt;alert(1)&lt;\/script&gt')); // write normal text
</script>

在我看来,<script>alert(1)<\/script>&lt;script&gt;alert(1)&lt;\/script&gt 相同(原始代码与http实体代码),但结果不同,任何人都可以解释一下吗?

最佳答案

它们不一样。 <是实际的<字符,在 HTML 中是标签的开头。 &lt;是我们用于 < 的 HTML 命名字符实体当我们想要真正拥有 < 时在文本中,否则我们无法这样做,因为......它开始一个标签。

所以<script>script 的开头标签,而 &lt;script&gt;就是我们如何放置字符 < , s , c , r , i , p , t , >在 HTML 中。

忘记document.writescript标签,只需查看 HTML 本身:

这个:

<div>Testing 1 2 3</div>

...是 div 的标记包含文本 Testing 1 2 3 的元素.

相比之下,这个:

&lt;div>Testing 1 2 3&lt;/div>

...是 < 的标记字符(作为文本)后跟 div>Testing 1 2 3接下来是另一个 <字符(作为文本)后跟 /div> .

关于javascript - 对 HTML 实体代码和原始代码之间的区别感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37528221/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com