GA作为RequireJS依赖与AdBlock EasyPrivacy列表
GA as RequireJS dependency vs. AdBlock EasyPrivacy list
我有一个应用程序(angular、d3等),我正在用require.js加载。Google Analytics和其他一些被AdBlock的EasyPrivacy列表阻止的脚本都在依赖链中,这意味着如果用户启用了它,应用程序就不会加载。
我知道,如果我不在脚本上运行优化器来包装它们,就会有回退路径,但如果它们被阻止,有没有任何方法可以回退,或者探查广告屏蔽程序并有条件地加载单独的配置,同时仍然能够优化和包装我的脚本?
也许类似于:
define(function () {
try {
var something = require('//path/to/ga');
} catch (e) {
return require('fallback');
}
return something;
});
将其作为加载GA的依赖项?
像这样的东西行吗?我是不是错过了什么,或者有更好的方法?我可以嗅探AdBlock吗?但前提是它正在阻止分析,并相应地加载?
太久之后,我发现在r.js配置中使用:empty
,例如
paths: {
googleAnalytics: ":empty",
...
}
加载main.js
中调用的原始文件,包括回调,因此我可以在其中添加回退:
paths: {
googleAnalytics: ['//www.google-analytics.com/analytics', 'ga-fb'],
...
}
其中ga-fb.js
只是加载一个脚本,该脚本在window.ga
处添加noop函数以防止在调用时抛出错误。ga-fb.js
无法折叠到优化文件中,如果需要,将单独加载。
可能是一个初学者级别的问题,但我希望这能在以后的道路上解决一些问题。这是我第一个使用require.js的项目,所以我肯定会遇到初学者级别的问题。
您可以在require.js-config:中列出paths
中的google analytics.js URL
require.config({
paths: {
ga: '//www.google-analytics.com/analytics'
}
});
然后,在需要访问谷歌分析的分析函数内部,只需直接调用它,并有一个错误函数将window.ga
分配给一个始终返回未定义的函数:
require(['ga'], function(data) {
window.ga('create', 'UA-XXXXXXXX-X');
window.ga('send', 'pageview');
}, function() {
window.ga = function(){};
});
相关文章:
- phoneGap/Cordova插件加载顺序/交易w/AdBlock
- 由于adblock,Javascript Ajax请求在chrome中失败,我有什么选择
- 正在检测Adblock和Firefox的私人浏览
- AdBlock阻止了我的一个页面
- Adblock 和 Chrome 扩展程序使用 requireJS,但在扩展文件夹中找不到库
- AdBlock 块需要 js / 主干代码(锁定整个页面)
- 如何编写自己的类似AdBlock的插件
- 在受Adblock保护的浏览器上发布广告
- 如何使用Adblock检测用户并重定向javascript
- 检测Adblock的可能方法?I'I’我尝试了很多东西
- 为什么adBlock不'I don’我不喜欢这根绳子
- GA作为RequireJS依赖与AdBlock EasyPrivacy列表
- Adblock正在阻止iframe重定向-如何检测
- Adblock检测问题
- Adblock Plus正在阻止我的自定义Facebook订阅源's图像
- 我的网站内容被AdBlock屏蔽twitter和
- AdBlock订阅链接没有执行JavaScript
- AdBlock阻止我的jquery
- 使用谷歌浏览器时,什么类型的HTML, javascript或网页源代码会导致Adblock不呈现页面?
- 当检测到AdBlock时禁用下载按钮