【发布时间】:2015-10-15 01:15:07
【问题描述】:
我必须修改我们的 Google 跟踪代码管理器容器,而且我对 GTM 很陌生。 IE8 和使用 Fusion Charts 的页面存在问题。使用这种组合,我在 gtm.js 中有一个 javascript 错误,我发现它在表单提交侦听器中。所以我想我会在那个标签上添加一个例外。该例外将是“如果 isIE8 和 hasFusionChartsControl”。这两个是 GTM 中“自定义 Javascript”类型的变量,我这样定义:
contientFusionCharts:
function() {
var file = "fusioncharts.js";
var scripts = document.getElementsByTagName("script");
for(var i = 0; i < scripts.length; i++) {
if (scripts[i].src != undefined && scripts[i].src.substr(scripts[i].src.length-file.length) == file) {
return true;
}
}
return false;
}
estIE8:
function() {
var isIE = !!document.documentMode; // At least IE6
var rv = -1; // Return value assumes failure.
if (isIE) {
if (navigator.appName == 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat(RegExp.$1);
}
}
return (rv > -1 && rv <= 8.0);
}
我已经测试了这些 javascript 函数,它们在 IE8 上运行良好。现在我定义了一个触发器:
这在我看来一切都很好,但它仍然无法正常工作。我可以证明这个标签有问题,因为我创建了一个异常,它查看特定页面的 URL,当我浏览这个特定页面时,不再引发 js 错误。但我不想创建指定特定页面的异常,因为这是一个 Sharepoint 站点,用户可以根据需要创建页面。所以我不想每次他们在页面中使用 Fusion Charts 控件时都添加异常。所以我认为寻找适合 Fusion Charts 的特定 html 标记是一个好主意,我得出的结论是,寻找包含 fusioncharts.js 的脚本将是一个好主意。
如果您能解释为什么它不起作用以及替代解决方案,那就太好了!谢谢!
【问题讨论】:
标签: javascript html internet-explorer-8 google-tag-manager fusioncharts