我正在使用laravel 5.8,并且在product.blade.php中,我在产品页面底部使用了针对Facebook像素AddToCart事件的这种方法,并且可以使用:
<script>
$("#addToCart").on('click', function(){
@if(env('APP_ENV') == 'production')
fbq('track', 'AddToCart', {
// data
});
@endif
$.ajax({
// post to the server
});
});
</script>
但是现在我想以其他方式使用。我想在product.blade.php中创建一个函数,以从控制器获取数据并仅在主javascript文件中正在生产该应用程序时才调用该函数(以使代码更简洁):
如果使用此方法,则现在在页面底部:
@if(env('APP_ENV') == 'production')
<script>
function fb_addToCart(){
fbq('track', 'AddToCart', {
// data
});
}
</script>
@endif
<script src="main.js"></script>
在main.js中,我具有单击按钮事件处理程序:
$(document).ready(function () {
// other code
$('#addToCart').on('click', function (e) {
e.preventDefault();
// call this function ONLY if the app is in production
if(typeof fb_addToCart === 'function'){
fb_addToCart();
}
$.ajax({
// post to the server
});
});
});
facebook像素事件未触发。如果应用程序处于生产模式,则if语句触发。
为什么facebook事件不会以这种方式触发??