Zef*_*ryn 6 javascript cdata google-tag-manager
最近,我正在创建一个模块,将google再营销代码添加到网上商店.我根据文档为不同类型的页面(产品,类别,购物车等)准备了google_tag_params.一切顺利,直到客户使用Google Tag Assistant插件检查了Chrome页面.它显示CDATA部分的警告.起初我不明白他在说什么,因为参数很好,我没有在控制台中收到任何错误.所以我检查了Google Tag助手,令我惊讶的是,它的行为如下.
代码:
<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>
Run Code Online (Sandbox Code Playgroud)
它显示警告"缺少CDATA评论",并指向文档https://support.google.com/tagassistant/answer/2978937?ref_topic=2947092#cdata_comments
但改变这个
<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>
Run Code Online (Sandbox Code Playgroud)
使警告消失.
所以我的问题是这个.在任何浏览器中,在线注释和多行注释之间是否有任何区别?这只是谷歌标签助手奇怪的行为,不承认这些评论?
一些html minifiers在缩小时可能会出现问题.
例如
<script type="text/javascript">
//<![CDATA[
alert("Hello World");
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)
成为
<script type="text/javascript">//<![CDATA[alert("Hello World");//]]></script>
Run Code Online (Sandbox Code Playgroud)
所以/*<![CDATA[*/只是更安全一点.