2014-11-03 96 views
0
<script> 
for(X=0;X<OrderDetails.length;X++) { 
    var transactionProducts = [ 
     { 
     'sku': OrderDetails[X][2], 
     'name': OrderDetails[X][3], 
     'category': 'none', 
     'price': OrderDetails[X][5], 
     'quantity': OrderDetails[X][6] 
     }]; 
} 
    dataLayer.push({'transactionProducts': transactionProducts}); 
</script> 

此代碼未正確執行。另外,如果我將它放在GTM內部的自定義HTML標記上,則表示identifier expected。你能讓我知道我在這裏做錯了嗎?僅獲取數據層中陣列的第一個值

+0

請您創建的jsfiddle(http://jsfiddle.net/ )給你遇到同樣的錯誤? – fxm 2014-11-03 16:49:28

+0

我無法在jsfiddle上覆制它 – sivi 2014-11-03 17:19:04

回答

1

你想要小心,所有這些值總是存在或至少包裝try/catch中的每個推。但隨着你的代碼直接的問題是,有在JS沒有數組解析,所以你的代碼應該是:

//<![CDATA[ 
 

 
var transactionProducts = []; 
 
    
 
for(X=0;X<OrderDetails.length;X++) { 
 
    transactionProducts.push({ 
 
    'sku': OrderDetails[X][2], 
 
    'name': OrderDetails[X][3], 
 
    'category': 'none', 
 
    'price': OrderDetails[X][5], 
 
    'quantity': OrderDetails[X][6] 
 
    }); 
 
} 
 

 

 
dataLayer.push({'transactionProducts': transactionProducts}); 
 

 
//]]>

+0

這裏是在一個jsfiddle例如http://jsfiddle.net/11oLow9a/,但當然如果這是一個自定義html標記,您需要添加 .. – lossleader 2014-11-03 17:34:16

+0

既然你直接將它包含到HTML中,你可能需要一個CDATA塊(在我的例子中添加),如果你讓GTM將它們包含爲自定義標籤,我不認爲這是一個問題。 – lossleader 2014-11-03 17:54:10

+0

它只是工作!謝謝#lossleader – sivi 2014-11-03 19:18:32

相關問題