gpt4 book ai didi

javascript - javascript书签代码中 'scr' +'ipt'的串联

转载 作者:数据小太阳 更新时间:2023-10-29 05:13:25 27 4
gpt4 key购买 nike

给定other questions在同一主题上,我觉得我理解连接 <script> 的明显理由。标记为 '<scr'+'ipt..'在 javascript 字符串中,即使它本身是 misguided .

但是,查看 Instapaper bookmarklet 的代码我看到 d.createElement('scr' + 'ipt') .代码的相关部分(美化)在问题的末尾。

即使这个(反)模式是为了避免 HTML 解析器在结束 <script> 出现后对标记犹豫不决。 javascript 字符串中的标记,鉴于连接的文本甚至不代表 <script>,我看不到在这里这样做的理由标签。

在这种情况下,这样做是出于其他原因吗?

javascript: function iprl5() {
var d = document,
z = d.createElement('scr' + 'ipt'), //???
b = d.body,
l = d.location;

最佳答案

逃跑很傻"<script>"因为它不会被解析为脚本 block 内的标记*,并且甚至更愚蠢对待"script"作为特别的。不是。它缺少 <</ ,没有它,它永远不会被解析为标签——在任何上下文中。因此 f("script")f("scr"+"ipt")具有相同的语义。

从技术上讲,在 HTML 中,所有 </在脚本 block 中需要防范,但实际上浏览器只关心 </script> .正因为如此,"<"+"/script>"是我推荐的,但这只适用于结束标签。即 "<script>" (或 "script" 视情况而定)在脚本 block 内完全有效。

快乐编码。


*通过兼容的 HTML 解析器:然而,手动(正则表达式)解析可能会以可怕的方式爆炸。 XML/XHTML 规则不同,但是 <需要为那些格式良好的无论如何编码......也许CDATA有些晦涩难懂?无论如何,它与 HTML 无关。

此外,链接的答案支持"<scr"+"ipt.." (或类似 "scr"+"ipt" 的子集):相反,他们主张防止以 </ 开头的关闭 脚本标记构造,那甚至不存在于帖子的代码中......

关于javascript - javascript书签代码中 'scr' +'ipt'的串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9336847/

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