[英]Why we include Google Tag Manager script of nearly 7 - 8 lines?
[英]How to exclude tag in Google Tag Manager based on specific script include in HTML
我必須修改Google跟蹤代碼管理器容器,並且在GTM中非常菜鳥。 IE8和使用Fusion Charts的頁面存在問題。 通過這種組合,我在gtm.js中遇到了一個JavaScript錯誤,並且發現它在Form Submit Listener中。 所以我認為我會在該標簽上添加一個例外。 該異常將是“ If 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的腳本將是一個好主意。
如果您對為什么它不起作用以及替代解決方案有一個解釋,那就太好了! 謝謝!
為了將來參考,這是我在Simo Ahava的google產品論壇上收到的答案:
嘿
異常只會阻止您為其設置的事件。 因此,您的異常將僅阻止“窗口已加載”事件。 您的標記是否在該事件上觸發? 如果您的代碼是在“所有頁面”事件上觸發的,則它使用的是“頁面視圖”,而不是“窗口加載”事件,因此您需要相應地更改Exception觸發器以匹配該代碼的事件。
或者,您可以只創建一個全局異常,該異常會阻止所有與其他條件匹配的事件。 您可以使用“自定義事件觸發器”將事件名稱設置為。*(並檢查RegEx)。
http://www.simoahava.com/gtm-tips/block-your-tags-with-trigger-exceptions/
西摩
我選擇使用事件名稱為。*(使用RegEx)的自定義事件觸發器來創建全局異常,並且效果很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.