我必須修改我們的Google跟蹤代碼管理器容器,並且我很喜歡GTM。我們遇到了使用Fusion Charts的IE8和頁面的問題。有了這個組合,我在gtm.js中有一個javascript錯誤,我發現它在一個Form Submit Listener中。所以我認爲我會在該標籤上添加一個例外。這個例外將是「如果isIE8和hasFusionChartsControl」。這兩個是GTM型 「自定義JavaScript」 的變數,我有這樣的定義:如何根據特定腳本在Google跟蹤代碼管理器中排除代碼在HTML中包含
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的腳本將是一個好主意。
如果你有解釋爲什麼它不工作和替代解決方案,這將是偉大的!謝謝!