Hackerboy1993: Greyboc aufrufen mit Javascript.

Hallo Leute,
bis jetzt habe ich auf meiner Website folgenden Code schnipsel verwendet:

<a href="igrendetwas.html" rel="gb_page_center[1327, 777]">Öffne irgendetwas in Greybox</a>
Die beiden Zahlen wurden per PHP eingefügt. Das ganze hat Prima geklappt. Und bei dem Aufruf hat es mir den Link mit Hilfe des bekannten Greybox Scripts angezeigt.
(Greybox])

Nun habe ich das ganze umgestaltet und erzeuge nun mittels Javascript meine Links.

Code vereinfacht:

  
var link = document.createElement("a");  
link.rel="gb_page_center['"+spezbreite+"', '"+spezhoehe+"'];";  
document.getElementById("idvomelternelement").appendChild(link);  

In diesem Fall wird also ein Link erzeugt und in meiner Datei Positioniert. spezbreite und spezhoehe sind existierende Variablen die die Fensterbreite und die Fensterhoehe der zu öffnenden Greybox als Zahl enthalten. Wenn ich das ganze nun anklicke werde ich zum link WEITERGELEITET anstatt das der Link in der Grexbox geöffnet wird.

Fehlermeldungen in der Mozilla Fehlerkonsole: Keine.

Wie muss ich das ganze umschreiben damit es funktioniert?

Danke für eure Antworten.

MFG Hackerboy1993

  1. Hallo,

    Wie muss ich das ganze umschreiben damit es funktioniert?

    Erstmal muss man verstehen, wie Greybox und eigentlich alle modernen JavaScripte arbeiten.

    Greybox wird nach dem Laden des Dokuments im Browser aktiv, durchläuft alle Links und verpasst ihnen einen Event-Handler, sofern das rel-Attribut entsprechende Greybox-Angaben enthält.

    Wenn du jetzt nachträglich, nach dieser Initialisierung von Greybox, Elemente zum Dokument mit JavaScript hinzufügst, dann haben die natürlich, nur weil sie ein rel-Attribut haben, noch lange keinen Event-Handler, der beim Klick auf den Link die Greybox öffnet, anstatt einfach nur das Linkziel anzunavigieren.

    Du kannst aber selbst einen solchen Event-Handler vergeben. Die internen Greybox-Funktionen sind hier aufgelistet:
    http://orangoo.com/labs/greybox/advance_usage.html
    Die rufst du einfach in einem Handler beim Klick auf den Link auf. Nichts anderes macht Greybox bei der Initialisierung (siehe auto_deco.js).

    Der Rest ist ganz normales Event-Handling:

    var link = document.createElement("a");  
    link.href = "... URI ...";  
    link.onclick = function () {  
        return GB_showCenter("Beschriftung", this.href, 777, 1327);  
    };
    

    Mathias

    1. Hallo Mathias,
      vielen herzlichen Dank für die TOP Erklärung. Funktioniert Fehlerfrei.

      Mfg Hackerboy1993