Javascript CDATA section



最近,我正在创建一个模块,将谷歌再营销标签添加到一个网店中。我根据文档为不同类型的页面(产品、类别、购物车等(准备了google_tag_params。一切都很顺利,直到客户使用Chrome的谷歌标签助手插件检查了页面。它显示了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>

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

使警告消失。

所以我的问题是。在任何浏览器中,单行注释和多行注释之间有什么区别吗?这是唯一一个谷歌标签助理不识别这些评论的怪异行为吗?

某些html缩小程序在缩小过程中可能出现问题。

例如

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

成为

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

所以/*<![CDATA[*/只是稍微安全一点。

没有,没有区别。谷歌标签助理根本无法识别换行终止的评论。

最新更新