用cdata标记替换脚本标记
Replacing script tag with cdata tags
我想用<![CDATA[<script
替换<script
,用</script>]]>
替换</script>
,并将其放入一个新的dom元素中。
所以我写了一个正则表达式来替换标签,我需要把这个脚本作为内部html放在下面这样的元素中
我在下面写了代码
var html = "<script src='"https://dynamic.test.com/test/test/common/js/test.js'"></script>";
html = html.replace(/<script/ig,"<!CDATA[<script")
.replace(/<'/script>/ig,"</script>]]>");
console.log(""$j("<test/>").html(html)[0].outerHTML);
我得到的输出如下
<test><!--CDATA[<script src="https://dynamic.test.com/test/test/common/js/test.js"-->]]></test>
但预期的输出是
<test><!--CDATA[<script src="https://dynamic.test.com/test/test/common/js/test.js"></script>]]></test>
看起来您的文档处于HTML模式(即用作text/html
)。HTML不支持显式CDATA部分。您需要一个XML文档。
请改用实体。将<
、>
等替换为<
、>
等
更好的做法是:停止使用字符串来创建HTML。使用appendChild
和createTextNode
。
相关文章:
- 用cdata标记替换脚本标记
- 替换字符串的脚本;在某些网站上不起作用
- 为什么这个脚本只工作一次?只替换元素一次,然后再也不替换
- Eloqua替换<脚本>标签
- Revolutions滑块替换脚本名称中的点
- 用按钮动态替换java脚本文件
- 编写替换背景图像的用户脚本
- 如何将 JSON 字符串中的文本替换为 Greasemonkey 的用户脚本
- 如何在 Java 脚本中替换列表框中的值
- 替换文本区域脚本 + RTE 中的文本
- 使用 Java 脚本将标记的内容替换为另一个标记
- 为什么正则表达式或.replace()不使用CKEditor和Javascript替换脚本中的字符串
- 如何替换 Java 脚本中出现的所有“”字符串
- Java脚本:替换未按预期工作的函数
- 如何用谷歌应用程序脚本替换电子表格中的文本
- 使用Greasemonkey脚本替换特定的表值
- 用脚本替换部分文本
- 用脚本替换Google电子表格中的多个字符串
- 如何用另一个脚本替换主题html中的脚本src
- 用Java脚本替换数学表达式字符串进行求值获胜't替换所有**事件