Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

  • adblock

    <img src="/ads/" width="0" height="0" border="0" alt="adblocktest" id="adblocktest" onload="this.imgloaded=true;" onerror="this.imgloaded=true;" />

    <script type="text/javascript">

       adblockblock = function() {
          if (window.addEventListener) {
             window.addEventListener('load', this.bind(this.initialize), false);
          } else if (window.attachEvent) {
             window.attachEvent('onload', this.bind(this.initialize));
          }
       };
       
       adblockblock.prototype = {
       
          initialize: function() {
             this.interval = setInterval(this.bind(this.test), 1000);
             this.test();
          },
       
          test: function() {
       
             var element=document.getElementById('adblocktest');
          
             /* On test si l'element a été supprimé par le bloqueur
             * Maxthon?, Konqueror
             */
             if(!element)
             {
                this.logger('Element image non trouvé');
                return this.block();
             }
       
             /* On test si l'image n'a tout pas été chargée dutout
             * Adblock, /etc/hosts, proxies, etc
             * Gecko: element.complete==true, même si image non trouvée / mauvaise image et onerror||onload appellée
             * IE: element.complete==false quand image non trouvée.
             */
             if (element.complete && !element.imgloaded)
             {
                this.logger('Image non chargée');
                return this.block();
             }
          
             /* On test si l'element a été caché par le bloqueur 
             * (display:none, ou visibility:hidden, ou position:absolute et top/left hors de la page)
             * Old adblock
             */
             var display = this.getStyle(element, 'display');
             var visibility = this.getStyle(element, 'visibility');
             var position = this.getStyle(element, 'position');
             if (display != 'inline' || (visibility != 'visible' && visibility != 'inherit') || position != 'static')
             {
                this.logger('Image cachée: display='+display+' visibility='+visibility+' position='+position);
                return this.block();
             }
       
             /* On test si l'image a été remplacée
             * Pour une image non chargée, naturalWidth/Height doit être indéfini ou 0
             */
             if ((element.naturalWidth && element.naturalWidth > 0) || (element.naturalHeight && element.naturalHeight > 0)) {
                this.logger('Image remplacée');
                return this.block();
             }
             /* Pour Konqueror
             */
             if (element.width && element.width == 64) {
                this.logger('Image remplacée (Konqueror)');
                return this.block();
             }
          },
       
          getStyle: function(element, key) {
             if (document.defaultView && document.defaultView.getComputedStyle) {
                return document.defaultView.getComputedStyle(element, '').getPropertyValue(key);
             } else {
                return element.currentStyle[key];
             }
          },
       
          block: function(blockMethod) {
             // Ne pas supprimer cette ligne
             if (this.interval) clearInterval(this.interval);
       
             // Mettez ce que vous voulez ici
             alert('Adblock activé ! ');
          },
       
          bind: function(func) {
             var obj = this;
             return function() {
                return func.apply(obj, []);
             };
          },
       
          logger: function(str) {
             if (typeof console == 'undefined') return;
             if (typeof console.log == 'undefined') return;
             console.log(str);
          }
       };
       
       /*Décommenter pour débugger (ou utiliser firebug)
       if (typeof console == 'undefined') {
          console={};
          console.log = function(str) {
             var el = document.createElement('div');
             el.appendChild(document.createTextNode(str));
             document.body.appendChild(el);
          };
       }
       */
       
       new adblockblock();
    </script>