将箭头函数转换为常规函数 - 用于 Google 标签管理器
Converting arrow function to regular function - For use in Google Tag Manager
我想在 GTM 中使用该脚本:
<script>
var isOverIFrame = false
var iframes = window.document.querySelectorAll('iframe');
function trackIframeClicks(frames){
window.addEventListener('blur',function(e) {
frames.forEach(function (frame, index) {
if (frame.mouseOver) {
window.dataLayer.push({
'event': 'ifameClick',
'frameSource': frame.src
});
// console.log(frame.src);
}
})
});
}
function setListeners (frames) {
frames.forEach(function(frame) {
frame.mouseOver = false
frame.addEventListener('mouseenter', () =>{
frame.mouseOver = true
// console.log('mouse in iframe')
});
frame.addEventListener('mouseleave', () =>{
frame.mouseOver = false
// console.log('mouse out of iframe')
});
})
}
setListeners(iframes);
trackIframeClicks(iframes);
</script>
尝试发布时出现以下错误:
第 20 和 24 行错误,字符 42:此语言功能仅支持 ECMASCRIPT_2015 模式或更好的模式:箭头函数。
有人可以帮忙重写这个函数,这样它就可以在没有箭头函数的情况下工作吗?
非常感谢。
function setListeners (frames) {
frames.forEach(function(frame) {
frame.mouseOver = false
frame.addEventListener('mouseenter',function enter (){
frame.mouseOver = true
// console.log('mouse in iframe')
});
frame.addEventListener('mouseleave',function leave () {
frame.mouseOver = false
// console.log('mouse out of iframe')
});
})
}
// An arrow function
() => {
...
}
// is shorthand syntactic sugar for
(function () {
...
}).bind(this)
但是由于您不需要绑定到 this
,您可以放弃它并只使用普通函数。
function () {
...
}
我想在 GTM 中使用该脚本:
<script>
var isOverIFrame = false
var iframes = window.document.querySelectorAll('iframe');
function trackIframeClicks(frames){
window.addEventListener('blur',function(e) {
frames.forEach(function (frame, index) {
if (frame.mouseOver) {
window.dataLayer.push({
'event': 'ifameClick',
'frameSource': frame.src
});
// console.log(frame.src);
}
})
});
}
function setListeners (frames) {
frames.forEach(function(frame) {
frame.mouseOver = false
frame.addEventListener('mouseenter', () =>{
frame.mouseOver = true
// console.log('mouse in iframe')
});
frame.addEventListener('mouseleave', () =>{
frame.mouseOver = false
// console.log('mouse out of iframe')
});
})
}
setListeners(iframes);
trackIframeClicks(iframes);
</script>
尝试发布时出现以下错误:
第 20 和 24 行错误,字符 42:此语言功能仅支持 ECMASCRIPT_2015 模式或更好的模式:箭头函数。
有人可以帮忙重写这个函数,这样它就可以在没有箭头函数的情况下工作吗?
非常感谢。
function setListeners (frames) {
frames.forEach(function(frame) {
frame.mouseOver = false
frame.addEventListener('mouseenter',function enter (){
frame.mouseOver = true
// console.log('mouse in iframe')
});
frame.addEventListener('mouseleave',function leave () {
frame.mouseOver = false
// console.log('mouse out of iframe')
});
})
}
// An arrow function
() => {
...
}
// is shorthand syntactic sugar for
(function () {
...
}).bind(this)
但是由于您不需要绑定到 this
,您可以放弃它并只使用普通函数。
function () {
...
}