javascript - 谷歌分析实验导致格式正确的字符数据或标记错误

标签 javascript jsf xhtml google-analytics

我正在尝试将 Google Analytics 实验脚本添加到我的 .xhtml 中。当我添加它时,出现以下错误。

: 元素的内容必须由格式正确的字符数据或标记组成

我已经尝试包含 CDATA 标签以修复错误,但是当我运行谷歌分析验证程序时,我得到未找到实验代码。

我想原因是因为我添加了 CDATA 标签(所以脚本被稍微修改了),有没有人有任何其他可能的解决方案?


 <!-- Google Analytics Content Experiment code -->
    <script>function utmx_section(){}function utmx(){}(function(){var
    k='4238049-1',d=document,l=d.location,c=d.cookie;
    if(l.search.indexOf('utm_expid='+k)>0)return;
    function f(n){if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.
    indexOf(';',i);return escape(c.substring(i+n.length+1,j<0?c.
    length:j))}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;d.write(
    '<sc'+'ript src="'+'http'+(l.protocol=='https:'?'s://ssl':
    '://www')+'.google-analytics.com/ga_exp.js?'+'utmxkey='+k+
    '&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='+new Date().
    valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
    '" type="text/javascript" charset="utf-8"><\/sc'+'ript>')})();
    </script><script>utmx('url','A/B');</script>
    <!-- End of Google Analytics Content Experiment code -->

最佳答案

如果 CDATA 无法解决问题,因为 Google 对此不屑一顾,那么基本上还有 2 个其他解决方案:

  1. 手动转义 XML 特殊字符,使整个 JS 代码在语法上 XML 有效。替换 <通过 &lt; , &通过 &amp; , >通过 &gt;

  2. 将JS代码放在自己的JS文件中,并通过<script src>包含.不确定 Google Analytics Validator 是否吃掉了它。 编辑:因此不会。

我至少会向 Google Analytics 人员报告他们的验证器严重损坏的问题。

另见:

关于javascript - 谷歌分析实验导致格式正确的字符数据或标记错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20427704/

相关文章:

javascript - 如何在javascript中否定函数对变量的属性?

javascript - jQuery如何在preventDefault()之后启用标签

javascript - 我如何给每个单独的 div 一个随机的背景颜色?

javascript - 如何将网页保存到本地,包括图片等

html - 如何在页面上的 DIV 中将可变宽度的图像居中?

css - firefox 和 opera 是否通过 javascript 支持 zIndex 样式属性

javascript - jsf h :inputText component appear based on javascript?

java - 将 HTTP header 添加到 RenderResponse

java - 样式表不适用于第一个 JSF 页面

css - 使用 css 的渐变顶部边框