2017-06-21 31 views
0

我一直在嘗試適應現有的(&工作標籤),如果你願意更高效/優雅一點。自定義HTML標籤:JS編譯錯誤爲userType dataLayer推

所以情況是,我們有一種通過GTM自定義HTML標籤將userType推入dataLayer的方法。不過,我試圖發佈標籤時遇到了編譯錯誤。

這裏的標籤:

<script> 
(function() { 
var ipaddress;; 
var type = 'external'; 
try { 
    jQuery.getJSON('https://ipinfo.io', function(data) { 
    ipaddress = data.ip; 
    var internal = [ 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address" 
    ]; 
    var userType = internal.indexOf(ipaddress) == -1 ? ‘external’ : ‘internal’; 
    } 
    if (ipaddress) { 
     window.dataLayer.push({ 
     event: 'ipResolved', 
     ipaddress: ipaddress, 
     userType: userType 
     }); 
    } 
    }); 
} catch(e) { 
    window.dataLayer.push({ 
    event: 'ipResolved', 
    ipaddress: 'N/A', 
    iplocation: 'N/A' 
    }); 
} 
})(); 
</script> 

任何人都可以揭示我要去哪裏錯了一些輕?我覺得我太靠近了,所以我看不到明顯的。

+0

在以usertype開頭的行中,內部和外部的單詞都包含在'智能'引號中。改用直的。 –

回答

0

你的JS有一些小錯誤:

  • 錯誤報價。這是代替'
  • 一個不必要}

。工作版本在這裏:

(function() { 
var ipaddress; 
var type = 'external'; 
try { 
    jQuery.getJSON('https://ipinfo.io', function(data) { 
    ipaddress = data.ip; 
    var internal = [ 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address", 
     "IP address" 
    ]; 
    var userType = internal.indexOf(ipaddress) == -1 ? 'external' : 'internal'; 

    if (ipaddress) { 
     window.dataLayer.push({ 
     event: 'ipResolved', 
     ipaddress: ipaddress, 
     userType: userType 
     }); 
    } 
    }); 
} catch(e) { 
    window.dataLayer.push({ 
    event: 'ipResolved', 
    ipaddress: 'N/A', 
    iplocation: 'N/A' 
    }); 
} 
})(); 
+0

謝謝維克多,它像一個魅力。你是個紳士! – VanGTO