【问题标题】:Syntax error while trying to add CDATA within script tags dynamically尝试在脚本标签中动态添加 CDATA 时出现语法错误
【发布时间】:2013-03-01 09:27:24
【问题描述】:

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

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

如果我将此代码直接粘贴到源代码中,它可以工作,但如果我尝试使用 jQuery 将它插入到 DOM 中,它会引发一些无法追踪的错误——至少我无法追踪它。其实是这样的:

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

element.html(data.content);

我已经尝试过的:

  1. 我已尝试删除&lt;!-- --&gt; html 评论标签。
  2. 我尝试将 wole 代码包装到由 jQuery 动态创建的脚本标签中。
  3. 我什至尝试删除 CDATA 标记,但这破坏了一切,我认为这对广告管理公司提供的主要广告处理程序脚本很重要。

任何帮助将不胜感激,在此先感谢!

(请不要在意方法,必须用ajax完成。)

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

【问题讨论】:

    标签: javascript jquery ajax cdata


    【解决方案1】:

    试试这样:

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

    【讨论】:

      【解决方案2】:
      <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>
      

      使用&lt;![CDATA[,您可以将JS 嵌入到XML(和XHTML)文档中,而无需用XML 实体@ 替换特殊的XML 字符,例如&lt;&gt;&amp; 等987654330@、&gt;&amp;

      【讨论】:

        【解决方案3】:

        用这个

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-11-15
          • 1970-01-01
          • 2016-04-29
          • 1970-01-01
          • 1970-01-01
          • 2014-05-05
          • 2021-09-18
          相关资源
          最近更新 更多