跟踪模式事件

Tracking a Modal Event

本文关键字:事件 模式 跟踪      更新时间:2023-09-26

我在开发一个分析项目时遇到了一个问题。

当任何类型的模态在特定页面上打开时,我想触发一个事件,该页面是未知的,模态的类型可以是页面中的任何类型。

我不希望使用谷歌分析

很长一段时间以来,我一直在努力寻找解决方案。

我已经尝试了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中以启用弹出窗口(但并不总是必需的)。

如果您使用的是PHP或等效程序,您可以使用ajax POST请求,然后让服务器触发跟踪调用。一般来说,ajax请求需要针对它们运行的同一台服务器(尽管也有变通方法),所以我通过使用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>