Ankündigung

Einklappen
Keine Ankündigung bisher.

Javascript: neues Fenster lädt ewig

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Javascript: neues Fenster lädt ewig

    Servus,

    habe gerade über Javascript ein Popup-Fenster geöffnet, in welches einfach kurz ein kleiner HTML-Code eingefügt wird, der ein Bild anzeigt.

    Das funktioniert auch prinzipiell ganz gut, aber unter Firefox wird mir in diesem kleinen Popup die Statusbar angezeigt, in der ein halb gefüllter Ladebalken zu sehen ist, und der Mauspfeil auf dem Popup ist der Pfeil mit der kleinen Sanduhr nebendran. Also so, als würde die Seite ewig laden (was ja irgendwie Quatsch ist, da das ja nur ein paar Zeilen HTML sind inkl. Bild, welches sofort da ist).

    Unter Opera und IE funktioniert es tadellos, bzw. wird da so oder so keine Statusbar in den Popups gezeigt (wie auch in den Optionen angegeben), aber auch der Mauspfeil ist normal.

    Woran kann das liegen?


    Code:
    function showPicture(url)
    {
        var w = 32;
        var h = 32;
        var x = screen.width / 2;
        var y = screen.height / 2;
        
        var options = "";
        options += "width="     + w + ",";
        options += "height="    + h + ",";
        options += "top="       + y + ",";
        options += "left="      + x + ",";
        options += "toolbar=no,location=no,status=no";
    
        var title = "Galerie";
        
        var html = "<html>";
        html += "<head><title>" + title + "</title></head>";
        html += "<body style='margin:0px'>[img]" + url + "[/img]</body>";
        html += "</html>";
        
        var newwin = window.open('about:blank', title, options);
        newwin.document.write(html);
        
        
        // resize and move
        w = newwin.document.images[0].width;
        h = newwin.document.images[0].height;
        
        x -= w / 2;
        y -= h / 2;
        
        newwin.resizeTo(w, h);
        newwin.moveTo(x, y);
    }

  • #2
    mhh du machst ja nichts besonderes. hast dus mal mit ner anderen ff version probiert?

    ansonsten wäre ein beispiellink vllt. noch hilfreich.

    Kommentar


    • #3
      Hmm, also ich hab auch noch das Problem daß das Resizen gar nicht auftritt, weil das Bild so schnell nicht geladen hat. Also hab ich den unteren Code mit dem resizen in eine andere Funktion ausgelagert und ihn über das onLoad-Ereignis des BODYs aufgerufen. Allerdings passiert dies nie (ein alert() in dieser Funktion bestätigte dies) - kann das damit zusammenhängen?

      Hab keinen Link, da die Seite noch nicht online ist

      Kommentar


      • #4
        Lustigerweise läßt sich nichtmal der Quelltext anzeigen (wenn ich das Popup absichtlich so groß mache, daß ich neben dem Bild noch das Kontextmenü aufrufen kann). Also scheint das Skript evtl. nie zu enden?

        Kommentar


        • #5
          Hab's gefunden, es fehlte ein document.close() am Ende.
          Allerdings wird meine Resize-Funktion durch das onLoad immer noch nicht aufgerufen... weiß jemand, woran das liegen kann?

          EDIT: Auch das hab ich nun hingekriegt, über captureEvents(). Hier der endgültige Code, falls das noch jemand braucht:

          Code:
          function fixSize(win)
          {
              var w = win.document.images[0].width;
              var h = win.document.images[0].height;
              
              var x = screen.width / 2 - w / 2;
              var y = screen.height / 2 - h / 2;
              
              win.resizeTo(w, h);
              win.moveTo(x, y);
          }
          
          
          function showPicture(url)
          {
              var w = 32;
              var h = 32;
              var x = screen.width / 2;
              var y = screen.height / 2;
              
              var options = "";
              options += "width="     + w + ",";
              options += "height="    + h + ",";
              options += "top="       + y + ",";
              options += "left="      + x + ",";
              options += "toolbar=no,location=no,status=no";
          
              var title = "Galerie";
              
              var html = "<html>";
              html += "<head><title>" + title + "</title></head>";
              html += "<body onload='fixSize();' style='margin:0px'>";
              html += "[img]" + url + "[/img]";
              html += "</body></html>";
              
              var newwin = window.open("about:blank", "newwin", options);
              newwin.document.write(html);
              newwin.document.close();
              
              newwin.document.captureEvents(Event.LOAD);
              newwin.document.onload = fixSize(newwin);
          }

          Kommentar


          • #6
            ARGHH!!!

            Es funktioniert immer noch nicht gescheit, mal fliegt das Event, mal nicht... es ist zum Verzweifeln...
            Es muß doch eine Möglichkeit geben, das Resizen aufzurufen, NACHDEM alle Bilder geladen wurden, oder nicht? Aber wenn ich das onload in das BODY-tag einbaue, geht's nicht und mit captureEvents geht's genausowenig (bzw. manchmal ja, manchmal nein)...

            Kommentar

            Lädt...
            X