在 GTM(Google 跟踪代码管理器)中,您可以拥有自定义 JavaScript 宏,它们是匿名函数,返回标签或规则使用的内容。
我的每个宏都使用 try/catch,因此我们可以轻松地显示任何实现错误(引发由 UA 标记捕获的 dataLayer 事件)
但这里有些奇怪……如果我取消注释 try/catch,GTM 固执地拒绝使用它并且不给出任何错误……但进入了保存模式(即浏览器一直在等待某些东西)。我知道当我在调试控制台中运行这段代码时它可以工作……而且我还有其他具有相同 try/catch 技术的宏……有什么想法吗?
function () {
/*try {*/
var v = '';
// HTML5 video
if(document.getElementsByTagName('video').length) v += 'video,';
// Youtube video
var i = document.getElementsByTagName('iframe');
for(x = 0; x < i.length; x++)
if(/youtube.com\/embed/.test(i[x].src)) {
v += 'youtube,';
break;
}
// Limelight video
if(document.getElementsByClassName('LimelightEmbeddedPlayer')) v += 'limelight,';
return v.length ? v.slice(0, -1) : v;
/*} catch(e) {
dataLayer.push({
'event': 'error',
'action': 'GTM',
'label': '713-Video Type:' + e.message
});
}*/
}