gpt4 book ai didi

javascript - 脚本双重转义状态

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

我正在探索 HTML5 分词器并想知道 double escape state .您可以通过以下方式进入此状态:

<script>
<!--<script>script data double escaped</script>-->
</script>

仅供引用,还有(单个)转义状态:

<script>
<!--script data escaped-->
</script>

我还没有找到/弄清楚单转义和双转义的区别及其目的?此外,我在文档的标记化部分没有看到对 "\" 的任何使用。用于像这样转义脚本标记的字符:<\/script> .我是不是遗漏了什么或者只是累了 ;) 单/双脚本状态是怎么回事?

编辑

来自评论:转义脚本标记 ( <\/script> ) 由 javascript 解析器处理,与 HTML 解析器无关。那么...单/双状态背后的故事是什么?

最佳答案

当 Javascript 刚被引入时,许多浏览器并不支持它。所以他们会渲染脚本标签的内容——javascript代码本身。解决这个问题的正常方法是将脚本放入评论中——比如

<script>
<!-- //hide from non-JS browsers
function doSomething() {
var coolScript = "<script>" + theCodeICopied + "</script>";
document.write(coolScript);
}
// And if you forget to close your comment here, things go funnny
-->
</script>

比较正常。所以像这样在注释中编写的脚本可以做一些事情,比如将脚本标签作为文字字符串写入文档的中间。这在今天看来可能是一种糟糕的风格,但曾几何时,DOM 的方式也不多。

关于javascript - 脚本双重转义状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23727025/

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