ben: XMLRequest

Hoi,
für meine neue Seite wollte ich ein bißchen mit Ajax rum spielen. Daher lade ich HTML Snippets mit XMLRequest nach, und schreibe via innerHTML in ein Div. Das klappt auch ganz gut, allerdings kann ich aus dem nachgeladenen HTML Snippets keine Javascript Funktionen aufrufen die in der Hauptseite stehen. Also ganz konkret kann ich Lightbox bei den Unterseiten nicht integrieren.
Bin noch ziemlicher Javascript Anfänger und würde gerne wissen ob es möglich ist, den nachgeladenen Seiten ist zu gestatten auf z.B. Javascript Funktionen der Hauptseite zu zugreifen. Denke da so in Richtung Vererbung, oder DOM aber hab noch nix konkretes gefunden.

MFG Ben

  1. Hallo,

    Also ganz konkret kann ich Lightbox bei den Unterseiten nicht integrieren.

    Yo, Lightbox wird automatisch beim erstmaligen Laden des Dokuments aktiv und sucht alle Elemente mit rel=lightbox. Die kriegen dann einige Event-Handler verpasst, sodass beim Klicken darauf die Lightbox geöffnet wird. Dabei werden natürlich nur die Elemente berücksichtigt, die zum Zeitpunkt des ursprünglichen Ladens im Dokument vorhanden sind.

    Wenn du also später noch HTML-Code nachlädst und ins Dokument schreibst, dann haben diese Elemente natürlich kein Lightbox-Verhalten. Ihnen fehlen die entsprechenden Event-Handler. Ich denke mal, da liegt der Hund begraben.

    Die müsstest du also - auf die eine oder andere Weise - hinzufügen. Je nachdem, welches Lightbox-Script du verwendest (welches verwendest du?), kann man die Lightbox auch direkt über einen JavaScript-Funktionsaufruf mit einem bestimmten Parameter öffnen. Dann könntest du z.B. <a href="bla.jpeg" onclick="lightboxAufrufen(this); return false;">Bild</a> notieren (nur vom Schema her - die Lightbox-Funktion heißt natürlich anders und arbeitet wahrscheinlich auch anders).

    (Es gäbe noch viele andere Möglichkeiten, aber die sind nicht unbedingt einfacher.)

    Bin noch ziemlicher Javascript Anfänger und würde gerne wissen ob es möglich ist, den nachgeladenen Seiten ist zu gestatten auf z.B. Javascript Funktionen der Hauptseite zu zugreifen. Denke da so in Richtung Vererbung, oder DOM aber hab noch nix konkretes gefunden.

    Wenn du Code mit XMLHttpRequest nachlädst und ins aktuelle Dokument schreibst, gibt es ja nur ein Dokument, eine »Seite«.
    Jeglicher JavaScript-Code darin hat selbstverständlich Zugriff auf die restlichen im Dokument definierten Javascript-Funktionen.
    Dass Lightbox nicht mehr beim funktioniert, hat sicher eine andere Bewandnis.

    Nunja, das ist eben ein Nachteil eines solchen »Nachladens« und der Vorteil des klassischen Modells mit eigenständigen Dokumenten.

    Mathias

    1. Hoi, danke für deine Antwort!
      Hab die Lightbox, Tinderbox und Slimbox ausprobiert. Zuletzt hatte ich genau das versucht was du oben beschreibst. Hab mit

      href="javascript:Lightbox.show('text/selectedwork.jpg', 'bildtest');"

      das image aufgerufen. Das klappt im Hauptdokument auch aber wieder net in den nachgeladenen.