破解Alexa以支持AngularJS
Hack Alexa to support AngularJS
为了让Alexa在基于Angular的应用程序上工作,我下载了Alexa代码片段并对其进行了分析。
Alexa似乎依赖于这个功能:
fire: function (e) {
this.user_cookie_v = this.muc();
this.map(e, function (e, t) {
this.opts[e] = t
});
// this.fired() check if "window._atrk_fired" is truthy
if (this.fired()) {
return
}
window._atrk_fired = true;
var t = new Image(1, 1);
t.alt = "alexametrics";
t.src = this.gen_url();
this.cloudfront.fire()
}
因为,在Angular应用程序中,页面不会被重新加载,所以只有在"window_atrk_fired"保持真理之后,才会触发一次事件fire()。
为了模拟页面重新加载,我不得不添加以下代码:
$rootScope.$on( "$routeChangeStart", function(event, next, current) {
console.log('setting alexa fire value to false');
window._atrk_fired = false;
})
我知道这个黑客攻击不是很可靠,因为Alexa可能会更改pageView跟踪策略。但我的目标是看看Alexa是否可以跟踪Angular应用程序。我想知道你对此事的看法?
当您将"window.atrk_fired"设置为false时,您必须通过调用atrk()来重新运行fire方法,因此您的路线更改事件应该是这样的
$rootScope.$on( "$routeChangeStart", function(event, next, current) {
console.log('setting alexa fire value to false');
window._atrk_fired = false;
atrk();
})
相关文章:
- AngularJS路由服务器端支持(NodeJS+express)
- Angularjs:支持 html5mode 的节点服务器
- 什么是支持IE的最新AngularJS稳定版本
- 重写我的 angularJS 脚本以支持 localStorage
- 只有 HTTP 支持 AngularJS 1.2 跨源请求
- AngularJS材质设计没有动画支持,如何实现
- “间歇”;jqLite不支持通过选择器查找元素"当使用RequireJS加载AngularJS时
- 破解Alexa以支持AngularJS
- angularjs中支持单向绑定的指令是什么
- 数据字段=“;时间“;不支持ng模型=“"angularjs
- AngularJS Material的表支持
- IE 7中的Angularjs错误对象没有't支持属性或方法'querySelector'
- JavaScript..iOS 9中不支持args?::JavaScript+Ionic+AngularJS
- Angularjs的ng-grid下拉菜单不支持order by
- Node Express服务器深度链接不支持AngularJS的html5Mode
- AngularJS:块作用域声明(let、const、function、class)在严格模式之外还不支持
- AngularJS表单验证不支持指令
- Angularjs智能表不支持动态数据
- 如何设置滚动到顶部刷新/加载?(只支持AngularJs或Js,不支持Jquery)
- angularjs中的Ng-show不支持span