使用回调函数时,ctrl +单击禁用

时间:2015-02-26 22:06:05

标签: javascript jquery google-analytics

我的电子商务网页中有一个产品的图片,也是一个链接,我希望每当有人点击图片时使用谷歌分析增强型电子商务工具进行跟踪。要在我的Google Analytics分析报告中获取更准确的数据,我会停止导航到下一页的链接,直到事件完成发送数据。

这是链接的HTML:

<a href="/product_path" onclick="onProductClick();return !ga.loaded;">
    <img src="/some_product.jpg" />
</a>

这是使用的javascript:

<script>
    function onProductClick() {  

        ...

        ga('send', 'event', 'UX', 'click', 'Featured' {
            'hitCallback': function() {
                document.location = '/product_path'
            }
        });
    }
</script>

然而,这会导致当我按下ctrl +点击图像时,它不会像往常一样在新标签中打开,它会在我现在正在打开的同一个标签中打开。这是我希望它继续工作的功能。

任何人都知道如何恢复该功能?

1 个答案:

答案 0 :(得分:0)

你可以使用类似的东西:

var my_event;
document.querySelector("#my_link").addEventListener("click", function(event){
    my_event= event;
    setTimeout(function(){//simulate your call to ga
        var window_target= my_event.ctrlKey ? "_newtab": "_self";
        window.open(my_event.target.href, window_target );
    },100);
    event.preventDefault();
    return false;
});

但它不可靠,但它没有,例如处理中键点击。

我会让正常的行为,ga脚本发出请求,然后像用户想要的那样打开新页面。实际上,我没有看到任何问题。

document.querySelector("#my_link").addEventListener("click", function(){
 //ga call here
});