Javascript 如何根据HTML中包含的特定脚本排除Google标记管理器中的标记
我必须修改我们的Google Tag Manager容器,我对GTM非常在行。IE8和使用融合图表的页面存在问题。通过这种组合,我在gtm.js中发现了一个javascript错误,并且我发现它位于表单提交侦听器中。所以我想我会在标签上添加一个例外。例外情况是“如果isIE8和hasFusionChartsControl”。这两个是GTM中“Custom Javascript”类型的变量,我定义如下: ContinentFusionCharts:Javascript 如何根据HTML中包含的特定脚本排除Google标记管理器中的标记,javascript,html,internet-explorer-8,google-tag-manager,fusioncharts,Javascript,Html,Internet Explorer 8,Google Tag Manager,Fusioncharts,我必须修改我们的Google Tag Manager容器,我对GTM非常在行。IE8和使用融合图表的页面存在问题。通过这种组合,我在gtm.js中发现了一个javascript错误,并且我发现它位于表单提交侦听器中。所以我想我会在标签上添加一个例外。例外情况是“如果isIE8和hasFusionChartsControl”。这两个是GTM中“Custom Javascript”类型的变量,我定义如下: ContinentFusionCharts: function() { var file
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;
}
function(){
var file=“fusioncharts.js”;
var scripts=document.getElementsByTagName(“脚本”);
对于(var i=0;i
估计数8:
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);
}
function(){
var isIE=!!document.documentMode;//至少IE6
var rv=-1;//返回值假定失败。
如果(isIE){
如果(navigator.appName==“Microsoft Internet Explorer”){
var ua=navigator.userAgent;
var re=newregexp(“MSIE([0-9]{1,}[\.0-9]{0,})”;
如果(重新执行(ua)!=null)
rv=parseFloat(RegExp.$1);
}
}
return(rv>-1&&rv供将来参考,以下是我在谷歌产品论坛上从Simo Ahava那里得到的答案:
哎
异常只会阻止您为其设置的事件
异常只会阻止“窗口加载”事件。是您的标记吗
在该事件中触发?如果您的标签在“所有页面”事件中触发,
它使用的是页面视图,而不是窗口加载事件,因此您需要
相应地更改异常触发器以匹配
标签
或者您可以创建一个全局异常,它阻止所有事件
与其他条件匹配。您可以使用自定义事件来执行此操作
触发器,并将事件名称设置为。*(并检查RegEx)
西莫
我选择使用事件名为.*(使用RegEx)的自定义事件触发器创建全局异常,这样做效果很好