JavaScript CDATA部分

6
最近,我正在创建一个模块,为网店添加Google Remarketing标记。根据文档,我已经为不同类型的页面(产品、类别、购物车等)准备了google_tag_params。一切都很顺利,直到客户使用Chrome的Google Tag Assistant插件检查页面时出现了CDATA部分的警告。起初我不明白他在说什么,因为参数是正确的,而且控制台也没有收到任何错误。所以我检查了Google Tag Assistant,惊讶地发现它的表现如下。
对于代码:
<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>

它显示警告“缺少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>

消除警告。

所以我的问题是,单行注释和多行注释在任何浏览器中有区别吗?这只是 Google Tag Assistant 奇怪的行为,不识别这些注释吗?

2个回答

6
一些HTML压缩工具在压缩时可能会出现问题。
例如:
<script type="text/javascript">
//<![CDATA[
    alert("Hello World");
//]]> 
</script>

成为
<script type="text/javascript">//<![CDATA[alert("Hello World");//]]></script>

所以,/*<![CDATA[*/ 只是更加安全一点。

2
不,没有区别。Google标签助手只是无法识别以换行符结束的注释。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接