Javascript CDATA部分
最近,我正在创建一个模块,将google remarketing标签添加到一个webstore中。我已经根据文档为不同类型的页面(产品、类别、购物车等)准备了google_tag_参数。一切都进行得很顺利,直到客户用谷歌标签助手附加到Chrome上检查页面。它显示CDATA部分的警告。起初我不明白他在说什么,因为参数很好,我在控制台中没有收到任何错误。因此,我检查了谷歌标签助手,令我惊讶的是它的行为如下 代码:Javascript CDATA部分,javascript,cdata,google-tag-manager,Javascript,Cdata,Google Tag Manager,最近,我正在创建一个模块,将google remarketing标签添加到一个webstore中。我已经根据文档为不同类型的页面(产品、类别、购物车等)准备了google_tag_参数。一切都进行得很顺利,直到客户用谷歌标签助手附加到Chrome上检查页面。它显示CDATA部分的警告。起初我不明白他在说什么,因为参数很好,我在控制台中没有收到任何错误。因此,我检查了谷歌标签助手,令我惊讶的是它的行为如下 代码: <script type="text/javascript"> //&l
<script type="text/javascript">
//<![CDATA[
var google_conversion_id = <?php echo $this->getConversionId();?>;
var google_conversion_label = '<?php echo $this->getConversionLabel();?>';
var google_custom_params = window.google_tag_params;
var google_remarketing_only = <?php echo $this->getRemarketingOnlyFlag();?>;
//]]>
</script>
//getConversionId();?>;
var google_conversion_label='';
var google_custom_params=window.google_tag_params;
var google_仅重新营销_=;
//]]>
它显示警告“缺少CDATA注释”,并指向文档
但将此更改为
<script type="text/javascript">
/*<![CDATA[*/
var google_conversion_id = <?php echo $this->getConversionId();?>;
var google_conversion_label = '<?php echo $this->getConversionLabel();?>';
var google_custom_params = window.google_tag_params;
var google_remarketing_only = <?php echo $this->getRemarketingOnlyFlag();?>;
/*]]> */
</script>
/*getConversionId();?>;
var google_conversion_label='';
var google_custom_params=window.google_tag_params;
var google_仅重新营销_=;
/*]]> */
使警告消失
所以我的问题是。在任何浏览器中,单行注释和多行注释之间有什么区别吗?这是唯一一个谷歌标签助手不识别这些评论的奇怪行为吗?不,没有区别。Google Tag Assistent根本无法识别以换行符结尾的注释。一些html缩略器在缩略过程中可能会出现问题 比如说
<script type="text/javascript">
//<![CDATA[
alert("Hello World");
//]]>
</script>
//
变成
<script type="text/javascript">//<![CDATA[alert("Hello World");//]]></script>
//
所以,/*更安全一点