跟踪模式事件
Tracking a Modal Event
我在开发一个分析项目时遇到了一个问题。
当任何类型的模态在特定页面上打开时,我想触发一个事件,该页面是未知的,模态的类型可以是页面中的任何类型。
我不希望使用谷歌分析。
很长一段时间以来,我一直在努力寻找解决方案。
我已经尝试了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>
相关文章:
- 以PubSub/Observer模式对事件进行排队
- 设置多个观察程序以触发动态事件的角度替代解决方案 - 优化的观察者模式
- 是否可以在卸载事件之前触发引导模式
- 从 ngDialog 模式修改完整日历事件信息(开始和结束)
- 当我们的设备从纵向模式定向到横向模式时,当地图完全加载时,是否有任何 Map 事件被触发
- 试图通过模块模式在DOM元素上实现change()事件
- 如何用模块模式扩展javascript中的事件委派
- 事件发射器模式如何在Node,sockets.io中工作
- 如何将事件绑定到模式对话框上的组件
- Twtitter Bootstrap模式显示事件多次触发
- 在页面上显示所有引导模式的事件
- 如何使用JQuery收听引导模式按钮的onClick事件
- 为什么ng模式获胜't对来自非用户输入事件的更改进行正确验证
- 在简单模式中,取消单击时不会调用onClose事件..当我在simple-modal上加载另一个jquery对话框时
- 引导模式加载事件
- 引导模式上未触发点击事件
- 如何将自定义事件添加到 jQuery 插件模式中
- 在丢弃事件时启动引导模式
- FullCalendar列表日期's事件模式
- 奇怪的点击事件模式,输入搜索框和无序列表