我有一个文件,ads.js
位于我assets/javascripts
的 rails 文件夹中。它包含一行代码 - canRunAds = true
,我使用下面的脚本在我的应用程序的其他地方查询。如果它返回undefined
,我会提供一条广告屏蔽消息。
当我测试它时,它在开发中完美运行,并且canRunAds
确实会返回undefined
. 然而,在生产中,打开 adblock - 它会记录消息Adblock not detected
- 即它不能按预期工作。奇怪的是,我也让 Chrome 告诉我ERR_BLOCKED_BY_CLIENT
文件ads.js
...所以文件被阻止,但canRunAds
仍在返回true
,怎么办?
我已经预编译了我的资产,并且ads.js
文件肯定在那里。我对 Rails 如何加载资产的知识非常有限,以至于我不知道接下来要谷歌做什么来解决这个问题。有人告诉我,rails 生产有时会“随时重新加载和自动加载所有东西”,但这就是我必须继续的所有信息......
任何帮助/指针将不胜感激!
function detectAdblock(){
if( window.canRunAds === undefined){
console.log("Adblock detected")
var donateBanners = document.getElementsByClassName("donations");
for (i = 0; i < donateBanners.length; i++) {
donateBanners[i].style.display = "block";
console.log("Banner displayed! " + i)
}
}
else {
console.log("Adblock not detected");
}
}
window.onload = detectAdblock;