erdbeere: lightbox bei onload öffnen

hi leute!

ich spiele gerade mit dem lightbox-skript rum und möchte gerne folgenden link automatisch beim laden der seite öffnen:
<a href="popup/images/image-1.jpg" rel="lightbox"></a>

wie geht das? für die funktion des lightbox-skripts ist das rel=lightbox ja obligatorisch...

danke für eure hilfe!

  1. Hallo,

    Hm, ich weiß nicht ganz, was für eine Antwort du erwartest bzw. an welcher Stelle du konkret nicht weiterkommst. Mehr als den Quelltext von Lightbox lesen kann hier wohl auch keiner, aber ich kann dir die relevanten Stellen vorlesen, falls dir das Script dadurch verständlicher wird:

      
    // initLightbox()  
    // Function runs on window load, going through link tags looking for rel="lightbox".  
    // These links receive onclick events that enable the lightbox display for their targets.  
    ...  
    //  
    function initLightbox()  
    {  
          ...  
     var anchors = document.getElementsByTagName("a");  
     // loop through all anchor tags  
     for (var i=0; i<anchors.length; i++){  
      var anchor = anchors[i];  
      
      if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "lightbox")){  
       anchor.onclick = function () {showLightbox(this); return false;}  
      }  
          ...  
    }  
      
    ...  
      
    // showLightbox()  
    // Preloads images. Pleaces new image in lightbox then centers and displays.  
    //  
    function showLightbox(objLink)  
    {  
     ...  
    }
    

    Wie du siehst, macht Lightbox nichts anderes, als einen onclick-Event-Handler zu setzen, der die Funktion showLightbox() mit dem Element-Objekt als Parameter aufruft.
    Diese Funktion kannst du auch selbst mit dem entsprechenden Element-Objekt als Parameter aufrufen, was denselben Effekt haben sollte.

    ...  
    function oeffneLightbox () {  
       var elem = document.getElementById("meinlink");  
       showLightbox(elem);  
    }  
    addLoadEvent(oeffneLightbox);
    

    So sollte beim Start die Lightbox geöffnet werden.

    Mathias

    1. hi!

      Hm, ich weiß nicht ganz, was für eine Antwort du erwartest bzw. an welcher Stelle du konkret nicht weiterkommst. Mehr als den Quelltext von Lightbox lesen kann hier wohl auch keiner, aber ich kann dir die relevanten Stellen vorlesen, falls dir das Script dadurch verständlicher wird:

      danke, hat mir sehr geholfen! (jetzt versteh ich langsam wie das funktioniert)...

      ...

      function oeffneLightbox () {
         var elem = document.getElementById("meinlink");
         showLightbox(elem);
      }
      addLoadEvent(oeffneLightbox);

        
      das versteh ich nun nicht so ganz...  
      die function kann ich lesen, aber das "addLoadEvent" nicht.  
      meinst du, dass ich in der aufrufenden seite ein onLoad="javascript:oeffneLightbox();" einbauen soll, oder muss dass mit in die entsprechende .js datei? die function addLoadEvent() ist ja in der entsprechenden .js nicht definiert... \*verwirrtbin\*  
        
      danke für die aufklärung und die geduld!
      
      1. Hallo,

        ...

        function oeffneLightbox () {
           var elem = document.getElementById("meinlink");
           showLightbox(elem);
        }
        addLoadEvent(oeffneLightbox);

        
        >   
        > das versteh ich nun nicht so ganz...  
        > die function kann ich lesen, aber das "addLoadEvent" nicht.  
        > meinst du, dass ich in der aufrufenden seite ein onLoad="javascript:oeffneLightbox();" einbauen soll, oder muss dass mit in die entsprechende .js datei?  
          
        Letzteres. Im HTML-Code brauchst du dann keine Änderungen vornehmen.  
          
        
        > die function addLoadEvent() ist ja in der entsprechenden .js nicht definiert... \*verwirrtbin\*  
          
        Doch, <http://www.huddletogether.com/projects/lightbox/lightbox.js> ganz am Ende.  
          
        ~~~javascript
        //  
        // addLoadEvent()  
        // Adds event to window.onload without overwriting currently assigned onload functions.  
        // Function found at Simon Willison's weblog - http://simon.incutio.com/  
        //  
        function addLoadEvent(func)  
        {  
         ...  
          
        }
        

        Mit addLoadEvent() lassen sich mehrere Funktionen beim Laden der Seite aufrufen. Man übergibt ihr dazu die aufzurufende Funktion. Lightbox selbst führt auf diese Weise die besagte Funktion initLightbox() nach dem Laden aus:

        addLoadEvent(initLightbox); // run initLightbox onLoad

        Danach fügst du einfach mit

        addLoadEvent(oeffneLightbox);

        eine weitere Funktion hinzu, die anschließend ausgeführt wird.

        Mathias