Sönke Tesch: Wer kann mir den folgenden code erklären

Beitrag lesen

Vielleicht hilft es dir weiter wenn ich genauer sage was ich will. Wenn man bei google z.b. nach webspace sucht, werden rechts banner eingeblendet. ich versuche halt zu verstehen wie das prinzip genau funktioniert und dort wird halt die funktion verwendet.

Wenn es um das Bannereinblendeprinzip geht: Das hat mit der Javascriptfunktion nichts zu tun, es handelt sich um schnödes Tabellenlayout.

Die Funktion bewirkt im Kern lediglich, daß man nicht direkt auf den Verweis klicken muß, sondern auch die gesamte umgebende Werbefläche nutzen kann. Das onclick-Ereignis ist dazu im <td> definiert. Die Zeile

a=o.id.substring(1);

liest aus dem Objekt o (die Tabellenzelle mit dem onclick) die ID aus. Diese gleicht bis auf das erste Zeichen der ID des enthaltenen <a>s (<td> hat "taw1", <a> "aw1"), daher das 'substring(1)'.
Am Ende wird dann per

location.href=document.getElementById(a).href

die Zieladresse des Verweises ausgelesen und diese Seite geladen.

Die dazwischen liegenden Zeilen sollen (soweit ich das überblicke) lediglich sicher stellen, daß das <a> seine normale Arbeit machen kann. Dazu werden die IDs einiger Elternobjekte geholt (t, p, r) und am Ende mit der (errechneten) ID des eigentlichen Verweises (a) verglichen:

if (t==a || p==a || r==a) return true;

Stimmen sie überein, bricht das Skript mit true ab, andernfalls wird oben zitierte location.href-Zeile ausgeführt.
Der Grund für den Vergleich mehrerer Elternobjekte liegt wohl darin, daß in dem <a>-Block weitere Unterelemente liegen können; in Deinem Beispiel <b>.

mich interessiert genau, ob das script unterscheidet, wenn ich auf so einem link draufklicke oder wenn ich mir die verknüpfung kopiere und in einem weiteren fenster lade uns ausführe

Das Skript hat nur ein onClick-Ereignis definiert, noch dazu in der Tabellenzelle, nicht im Verweis. Das hat also absolut garnichts damit zu tun, ob Du in die Adressleiste Deines Browsers irgendetwas eintippst, geschweige denn damit, ob Du irgendeinen Text kopierst.

Gruß,
  soenk.e