Nichts zu danken. Ich lerne gern was neues und wenn man sein Lernen mit einer sinnvollen Aktivität verbinden kann ist das doch ein Anreiz schneller und mehr zu lernen.

Ich spiele noch ein bisschen mit dem Code rum und werde Ihn dann heute abend mal posten.

*Edit*
Hier der Code. Er funktioniert nicht im FF 2 und IE 6. Im FF 1.5 geht er, andere Browser habe ich nicht getestet.
Ich habe den Code, mal so verfasst, dass er sich z.B. für einen Besuchertausch eignen würde, weil er nach Meldung der Kampange zum Frameset zurückkert.

1. Frameset.htm
Das Frameset. Ich habe hier auch die Erkennung eingebaut.
Das Frameset meldet einen Framebrecher sobald es verlassen wird, also ist diese version geeignet für Besuchertauscher, bei denen das frameset nicht neu geladen wird.
Lädt ein user das Frameset manuell neu oder gibt im Adressfeld eine neue URL ein und will sie ansurfen, so wird das ebenfalls als Framebrecher erkannt.
Lädt ein Besuchertauscher das frameset neu, so kann die Erkennung auch in den Vergütungsframe eingebaut werden.

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
   "http://www.w3.org/TR/html4/frameset.dtd">
<html>

<head>
<title>Frameset Test</title>

<script type="text/javascript">

function FBMeldung() {
       top.location="melden.htm";
        }  
     
</script>

<frameset rows="30,*"; onunload="FBMeldung()">
  <frame src="abuse.htm" name="ab"> 
  <frame src="ad.htm" name="werbung">
</frameset>

</head>

<body>

</body>

</html>
2. Ad.htm
Der Framebrecher

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Framebrecher</title>
<script type="text/javascript">
if (top != self) {
    top.location = self.location;
}
</script>
</head>
<body bgcolor="#000000" text="#FFFFFF">

<h1>Framebrecher</h1>

</body>
</html>
3. Abuse.htm
Der Vergütungsframe. Hier eine html Datei ohne funktion.

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Vergütungsframe</title>

</head>
<body>

</body>

</html>
4. Melden.htm
Die Seite wird bei Framebrecher Erkennung aufgerufen und schickt den Browser nach 5 Sekunden zurück zum Frameset.
Da das Frameset auch nach einem vom User ausgelösten Reload diese Meldeseite aufruft, könnte an hier vielleicht auch einen Button oder Link einbauen, der die Meldung bei Klick rückgängig macht.
So würde die Kampange nicht zwangsläufig gemeldet werden nur weil ein User mal ausversehen die Seite reloadet.

Code:
<html><head><title>Test</title>

<script type="text/javascript">

function Go() {
self.location="Frameset.htm";
}

setTimeout("Go()", 5000);

</script>

</head>

<body bgcolor="#BACBDE">
Meldung. Weiter in 5 Sekunden
</body>

</html>
*Edit*
Ich merke gerade ich bin da mit klick und BT erkennung durcheinander gekommen...
Im laufe des Abends werde ich es noch mal überarbeiten

*Edit2*
So ist überarbeitet.
Im Codeschnipsel Bereich werde ich heute noch mal eine Version für Klicks posten.
Den Code für den Framebrechersicheren BT werde ich dann auch mal um dieses hier ergänzen.

*Edit3*
Klick Framebrecher Erkennung ist im Forenbereich [HD] Codeschnipsel.
Ohne JS wird auch vergütet, und wenn der Vergütungsframe langsamer als die Kampange lädt, wird ein Framebrecher auch erkannt, da die Erkennung im Frameset ist.