2014-11-03 93 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

相关问题