FuckAdBlock (v3.2.1)
You can detect nasty ad blockers.
Online example: http://sitexw.fr/fuckadblock/
(There is also a project, BlockAdBlock, with a more convenient name)
Come and see the future of FuckAdBlock: V4 Beta
Valid on
- Google Chrome
- Mozilla Firefox
- Internet Explorer (8+)
- Safari
- Opera
Install via
Manual:
Download "fuckadblock.js" and add it to your website.
Bower:
bower install fuckadblock
Node.js/io.js:
npm install fuckadblock
Code example
function adBlockNotDetected() {
alert('AdBlock is not enabled');
}
function adBlockDetected() {
alert('AdBlock is enabled');
}
if(typeof fuckAdBlock === 'undefined') {
adBlockDetected();
} else {
fuckAdBlock.onDetected(adBlockDetected);
fuckAdBlock.onNotDetected(adBlockNotDetected);
fuckAdBlock.on(true, adBlockDetected);
fuckAdBlock.on(false, adBlockNotDetected);
fuckAdBlock.on(true, adBlockDetected).onNotDetected(adBlockNotDetected);
}
fuckAdBlock.setOption('checkOnLoad', false);
fuckAdBlock.setOption({
debug: true,
checkOnLoad: false,
resetOnEnd: false
});
Default options
checkOnLoad: true
resetOnEnd: true
loopCheckTime: 50
loopMaxNumber: 5
baitClass: 'pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links'
baitStyle: 'width: 1px !important; height: 1px !important; position: absolute !important; left: -10000px !important; top: -1000px !important;'
debug: false
Method available
fuckAdBlock.setOption(options, value);
fuckAdBlock.check(loop);
fuckAdBlock.emitEvent(detected);
fuckAdBlock.clearEvent();
fuckAdBlock.on(detected, fn);
fuckAdBlock.onDetected(fn);
fuckAdBlock.onNotDetected(fn);
Instance
(Available only from version 3.1 and more)
By default, FuckAdBlock is instantiated automatically.
To block this automatic instantiation, simply create a variable "fuckAdBlock" with a value (null, false, ...) before importing the script.
<script>var fuckAdBlock = false;</script>
<script src="./fuckadblock.js"></script>
After that, you are free to create your own instances:
fuckAdBlock = new FuckAdBlock;
myFuckAdBlock = new FuckAdBlock({
checkOnLoad: true,
resetOnEnd: true
});