我在开发一个分析项目时遇到了一个问题。
当任何类型的模态在特定页面上打开时,我想触发一个事件,该页面是未知的,模态的类型可以是页面中的任何类型。
我不希望使用谷歌分析。
很长一段时间以来,我一直在努力寻找解决方案。
我已经尝试了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>