我正在使用Google Analytics外部链接跟踪代码:
var trackOutboundLink = function(url) {
ga('send', 'event', 'outbound', 'click', url, {'hitCallback':
function () {
window.open ( url, "_blank" );
//document.location = url;
}
});
}
来自:
<a target="_blank" onclick="trackOutboundLink('http://www.example.com'); return false;" href="http://www.example.com">Full Brochure</a>
但是,由于未直接从用户交互中调用window.open,因此启用了浏览器弹出窗口阻止程序。
如何实现此目标,以便目标是一个新标签,但弹出窗口阻止程序没有使用?感谢
答案 0 :(得分:1)
我会不引人注意地这样做。所以:
<a target="_blank" href="http://www.example.com" rel="external">...</a>
然后JS:
/* Find all external links in the document... */
var ext_links = document.querySelectorAll('a[rel=external]');
/* Iterate through each external link in the document... */
[].forEach.call(ext_links ,function(a){
/* For each external link, assign an onclick callback: */
a.addEventListener('click',function(){
/* Google tracking code here, try this: */
var url = a.href;
ga('send', 'event', 'outbound', 'click', url);
})
});
注意我没有使用event.preventDefault()来取消超链接的默认操作,因此在“click”功能运行后,它仍应立即在新窗口/选项卡中打开。