igr*_*igr 4 html javascript parsing
我正在探索 HTML5 tokenizator,并对双重转义状态感到好奇。您可以通过以下方式进入此状态:
<script>
<!--<script>script data double escaped</script>-->
</script>
Run Code Online (Sandbox Code Playgroud)
仅供参考,还有(单个)转义状态:
<script>
<!--script data escaped-->
</script>
Run Code Online (Sandbox Code Playgroud)
我无法找到/弄清楚单转义和双转义的区别及其目的?另外,我在文档的标记化部分中没有看到使用"\"char 来转义脚本标记,如下所示:<\/script>。我是错过了什么还是我只是累了;)单/双脚本状态是什么?
编辑
从评论来看:转义脚本标签 ( <\/script>) 由 javascript 解析器处理,与 HTML 解析器没有任何关系。那么...单/双状态背后的故事是什么?
小智 6
当Javascript第一次被引入时,许多浏览器并不支持它。所以他们会渲染 script 标签的内容 - 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>
Run Code Online (Sandbox Code Playgroud)
都比较正常。因此,在这样的注释中编写的脚本可以执行诸如将脚本标签作为文字字符串写入文档中间之类的操作。在今天看来,这种风格可能很糟糕,但在很久以前,也没有太多通过 DOM 实现的方式。
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |