<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。您能告诉我我在做什么错吗?

最佳答案

您需要注意,所有这些值始终存在,或者至少将每次推送包装在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});

//]]>  

关于javascript - 仅获取数据层中数组的第一个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26718315/

10-11 06:04