![](/img/trans.png)
[英]Javascript Compiler Error in Google Tag Manager: this language feature is only supported for ECMASCRIPT6 mode or better
[英]"This language feature is only supported for ECMASCRIPT6 mode or better: arrow function."
我有一個代碼,我在上傳時遇到問題。 我正在嘗試在 GTM 中提交此代碼,盡管該線程的標題顯示“=>”不被接受。 我能否獲得有關使這些正常功能的幫助? 錯誤出現在“var items = products.map”部分。
任何和所有的幫助將不勝感激。
<script>
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event) {
var payload = event.data && event.data.payload;
if (!payload || event.data.messageType !== 'analyticsEvent') return;
if (
payload.name === "checkout"
) {
var customerEmail =
payload.properties && payload.properties.customerEmail;
var subtotal =
payload.properties && payload.properties.estimatedTotal;
var cartId =
payload.properties && payload.properties.cartId;
var products =
payload.properties && payload.properties.products;
// do something with payload
console.log(subtotal, cartId, products);
// if you're using Enhanced Ecommerce in Google Analytics,
// you can use the following code:
var items = products.map(({ product_id, name, brand, category, kind, unit_price, count, special_id, special_title }) => ({id: product_id, name: name, brand: brand, category: kind, variant: category, quantity: count, price: unit_price}))
gtag('event', 'purchase', {
"transaction_id": cartId,
"affiliation": "store",
"value": subtotal,
"currency": "USD",
"items": items
});
}
if (
payload.name === 'menuLoad'
) {
var customerEmail =
payload.properties && payload.properties.customerEmail;
// do something with the customerEmail if user is authenticated
console.log(customerEmail);
}
if (
payload.name === 'productView'
) {
var productId =
payload.properties && payload.properties.productId;
var productKind =
payload.properties && payload.properties.productKind;
var product =
payload.properties && payload.properties.product;
// do something with productId, productKind, product
console.log(productId, productKind, product);
}
if (
payload.name === 'cartItemAdd'
) {
var productId =
payload.properties && payload.properties.productId;
var product =
payload.properties && payload.properties.product;
console.log(productId); // do something with the productId
}
if (
payload.name === 'cartItemRemoval'
) {
var productId =
payload.properties && payload.properties.productId;
console.log(productId); // do something with the productId
}
}
</script>
var items = products.map(({ product_id, name, brand, category, kind, unit_price, count, special_id, special_title }) => ({id: product_id, name: name, brand: brand, category: kind, variant: category, quantity: count, price: unit_price}))
可能會變成這樣:
var items = products.map(function(product) {
return {
id: product.product_id,
name: product.name,
brand: product.brand,
category: product.kind,
variant: product.category,
quantity: product.count,
price: product.unit_price
};
});
因為 ES6 代碼使用對象解構和隱式(?)返回值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.