我必须修改我们的Google跟踪代码管理器容器,而且我在GTM中非常棒。我们在IE8和使用Fusion Charts的页面上遇到问题。有了这个组合,我在gtm.js中有一个javascript错误,我发现它在Form Submit Listener中。所以我认为我会在该标签上添加一个例外。那个例外是"如果是ieIE8和hasFusionChartsControl"。这两个变量类型为#34; Custom Javascript"在我已定义的GTM中:
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的脚本将是一个好主意。
如果您对其工作原理和替代解决方案有解释,那就太棒了!谢谢!
答案 0 :(得分:2)
以下是我在Simo Ahava的Google产品论坛上收到的答案:
喂
例外仅阻止您为其设置的事件。所以你的 异常只会阻止“Window Loaded”事件。是你的标签 解雇那个事件?如果您的标签在“所有页面”事件中触发, 它使用的是Page View,而不是Window Loaded事件,因此您需要 相应地更改您的Exception触发器以匹配事件 标签
或者您可以创建一个阻止所有事件的全局异常 符合其他条件。您可以使用自定义事件执行此操作 触发,并将事件名称设置为。*(并检查RegEx)。
http://www.simoahava.com/gtm-tips/block-your-tags-with-trigger-exceptions/
西莫
我选择使用自定义事件触发器创建全局异常,其事件名称为。*(使用RegEx)并且运行正常。