Und nun, das steht doch auch dort:
AdBlock Says:
October 8th, 2004 at 9:20 pm
This method doesn’t work with Firefox’s adblock. This script looks to see if a page was modifed before being shown to the browser in such a way that the image tag has actually been removed.
The Adblock firefox plugin is integrated in the browser in such a way that it doesn’t modify the html, and the browser’s javascript still thinks that the image is there. It is still there, actually, the Firefox browser just doesn’t show it.
Jede Adblock-Software geht nun mal ihren eigenen Weg.
Da FF-Adblock sich nicht über navigator.plugins zu Erkennen gibt, gibt es keine Möglichkeit, es zu identifizieren...sondern nur die Möglichkeit herauszufinden, ob etwas geblockt wurde.
Dazu muss man halt prüfen, ob alles so ist, wie es sein sollte im Dokument.
Hier mal ein Beispiel für FF+Opera:
Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="author" content="doktormolle">
<meta name="date" content="2008-10-26">
<title>Test</title>
</head>
<body>
<img id="adblocktest" src="http://www.adblock.org/banner.gif">
<script type="text/javascript">
<!--
function checkblock(img)
{
try
{
img=document.getElementById(img);
if(
!img.width//Opera
||
(img.style.display.match(/none/)||img.style.visibility.match(/hidden/)) //FF
){}
else
{
return;
}
}catch(e){}
alert('Hier wird was geblockt');
}
window.onload=function(){setTimeout("checkblock('adblocktest')",1000);}
//-->
</script>
</body>
</html>
Es ist ja nicht ganz so, wie auf der Adblock-Seite gesagt wurde, dass FF-Adblock nicht das Dokument ändert...es verbirgt das geblockte Objekt(zumindest bei meinem Adblock...es gibt ja nicht nur Ein Adblocker für FF) per CSS.
Und das erst nach dem onload des Fensters.
Ich rufe also 1sek nach dem onload eine Funktion auf, die prüft, ob das entsprechende Bild versteckt wurde(FF)....oder ob es garnicht geladen ist(Opera...wenn ein Bild nicht geladen ist, hat es auch keine Breitre/Höhe)...oder ob das Bild gar verschwunden ist(das catch-Statement)....denn ich weiss ja, dass da ein Bild ist, dass nicht versteckt ist und geladen sein müsste.
Was den Cookie dort betrifft...der dient nicht dazu, irgendetwas zu Erkennen, sondern soll dem User nur die Möglichkeit geben, die Meldung für die aktuelle Sitzung abzuschalten...mehr nicht.