尝试在脚本标记中动态添加CDATA时出现语法错误

时间:2013-03-01 09:27:25

标签: javascript jquery ajax cdata

因此,有一个广告代码我尝试动态添加到DOM中,如下所示:

<script type="text/javascript"><!--<![CDATA[
   JAVASCRIPT CODE
//]]>--></script>

如果我将此代码直接粘贴到源代码中,它可以正常工作,但如果我尝试使用jQuery将其插入DOM,则会抛出一些无法追踪的错误 - 至少我无法追踪它。实际上这个:

javascript syntax error

有趣的是,Firebug将此错误连接到包含jQuery的页面中的随机脚本。广告代码以这种方式插入DOM / element是一个jQuery对象/:

element.html(data.content);

我还尝试过:

  1. 我试图删除<!-- --> html评论标记。
  2. 我试图将wole代码包装到由jQuery动态创建的脚本标记中。
  3. 我甚至试图删除CDATA标签,但这打破了一切,我认为这对广告管理公司提供的主广告处理程序脚本很重要。
  4. 任何帮助将不胜感激,提前谢谢!

    (请不要关心方法,必须使用ajax。)

    编辑:问题仍然存在,但我认为广告代码一定存在问题,因此我接受了此主题的第一个有用答案。

3 个答案:

答案 0 :(得分:1)

试试这样:

<script type="text/javascript">
/* <![CDATA[ */
  ...
/* ]]> */
</script>

答案 1 :(得分:0)

使用此

<script type="text/javascript">
 //<![CDATA[
 //YOUR CODE
//]]>
</script>

如果问题仍然存在,请告诉我。

答案 2 :(得分:0)

<script type="text/javascript">
//<![CDATA[
        ...
//]]>
</script>

<!-- (For styles, it is different) -->

<style type="text/css">
/*<![CDATA[*/
        ...
/*]]>*/
</style>

如果你真的需要兼容那些无法识别脚本或样式标签的旧浏览器,导致其内容显示在页面上,你可以使用:

<script type="text/javascript"><!--//--><![CDATA[//><!--
        ...
//--><!]]></script>

<!-- (For styles, it is different) -->

<style type="text/css"><!--/*--><![CDATA[/*><!--*/
        ...
/*]]>*/--></style>

使用<![CDATA[,您可以在JS(和XHTML)文档中嵌入XML,而无需替换XML,{{1}等特殊<个字符XML实体>&<等提供},>