跟踪模态事件

时间:2014-10-29 10:53:34

标签: javascript analytics

我正在开发一个正在开发的分析项目中的问题。

我希望在特定页面上打开任何类型的模态时触发事件,页面未知,模态的类型可以是页面中的任何内容。

不希望使用 Google Analytics

我试图在很长一段时间内找到解决方案。

我尝试过 window.open ,但我不想只用于window.open。它适用于所有类型的库和模态。

这是我到目前为止所做的,

    <script type="text/javascript">
        var windowOpen = window.open;

        window.open = function(url, name, features, replace) {
            alert("opening a window");
            // do other stuff here
            windowOpen(url, name, features, replace);  
        }

        document.getElementById("myBtn").addEventListener("click", function() {
            window.open("http://www.w3schools.com");
        });

    </script>   

任何帮助将不胜感激,提前谢谢。

EDIT1 :我想到了我们可以做的一件事,那就是我们可以在DOM中寻找一些变化。因为通常弹出窗口会将DOM添加到现有DOM中以启用弹出窗口(但并非总是必要)。

1 个答案:

答案 0 :(得分:0)

如果您使用的是PHP或同等产品,则可以使用ajax POST请求执行此操作,然后让服务器触发跟踪调用。通常,ajax请求需要针对它们正在运行的同一服务器(尽管there are workarounds),所以我通过使用PHP来解决它。我的javascript代码如下所示:

<script type="text/javascript">
    $(document).ready(function() {
        $('#yourModalId').on('shown.bs.modal', function (e) {  //this event applies to bootstrap 3+ modals
            var dd = new Date();
            var trackingtime = Math.round(Math.abs(Math.sin(dd.getTime()))*1000000000)%10000000;
            $.post("myApp/myTrackingPage",
                    { "id" : "1234567",
                      "trackingtime": trackingtime
                    },
                    function(data){
                        console.log(data);
                    }
            );
        });
    });
</script>