Peter: Lokal funktionierts - online nicht!

Ich habe ein einfaches JavaScript (externe Datei) in meine Homepage eingebaut welches ein Bild in einem neuen Fenster in der Bildschirmmitte öffnet. Lokal funktioniert alles wunderbar... online erscheint der JavaScript-Fehler: "Fehler auf der Seite". Wer kann hier helfen?

  1. Guten Morgen!            # Anrede?

    [..] Wer kann hier helfen?

    Wer hat etwas Quellcode?
    Was zeigt die Detailmeldung zum Fehler?

    Gruss Sven             # Grussformel ??

    1. Guten Morgen!            # Anrede?

      [..] Wer kann hier helfen?
      Wer hat etwas Quellcode?
      Was zeigt die Detailmeldung zum Fehler?

      Gruss Sven             # Grussformel ??

      OK...hier ist der Quellcoder der .js-Datei:

      function OpenNewWindow(Picture,Breit,Hoch)
      {
      xsize = Breit+40;// Zusatz für Rand rechts und links
      ysize = Hoch+70; //Zusatz für Rand oben und unten - damit Button angezeit

      ScreenWidth = screen.width;
      ScreenHeight = screen.height;

      xpos = (ScreenWidth/2)-(xsize/2);
      ypos = (ScreenHeight/2)-(ysize/2);

      NewWindow=window.open("","Picture","height="+ysize+",width="+xsize+",scrollbars=no,resizable=no,top="+ypos+",left="+xpos+"");
      NewWindow.document.write ("<html><head><title>Bildanzeige HS Völkermarkt");
      NewWindow.document.write ("</title></head>");
      NewWindow.document.write ("<body bgcolor='#006699'onload='focus()'>");
      //NewWindow.document.write ("<body bgcolor='#006699'>");
      NewWindow.document.write ("<table align='center'><tr>");
      NewWindow.document.write ("<td align='center' valign='top'>");
      NewWindow.document.write ("<table border='0' bgcolor='#000000'cellpadding='0' cellspacing='1'><tr><td align='center'>");
      NewWindow.document.write ("<img src=");
      NewWindow.document.write (Picture);
      NewWindow.document.write (">");
      NewWindow.document.write ("</tr></table>");
      NewWindow.document.write ("</td></tr><tr>");
      // NewWindow.document.write ("<td align='center' valign='bottom'>");
      // NewWindow.document.write ("<br><center><form><input type='button'value='FENSTER SCHLIESSEN' style='font-family: Verdana; font-size: 10px'onClick='self.close()'>");
      // NewWindow.document.write ("</td></tr></table>");
      NewWindow.document.write ("</form></body></html>");
      NewWindow.document.close();
      NewWindow.resizeTo(xsize,ysize);
      }

      Eingebunden habe ich das Ganze so:

      <!--
      // -->
      <script src="../scripte/newwindow.js" type="text/javascript">

      </script>
      <script language="JavaScript">
      <!--

      Findest du einen Fehler??

      1. hio,

        OK...hier ist der Quellcoder der .js-Datei:

        so ne ruchtige Anred ist es noch nicht geworden ;)

        online erscheint der JavaScript-Fehler: "Fehler auf der Seite"

        also richtig aufschlussreich ist die Fehlermeldung jetzt mal nicht, denke das hast du etwas sehr ungenau wiedergegeben, interessanter wäre z.b. Was für ein Fehler? und welche Zeile? welcher Browser?

        ScreenWidth = screen.width;
        ScreenHeight = screen.height;

        müsste das nicht  ScreenWidth = parseInt((ScreenWidth/2)-(xsize/2));

        sonst läufst du gefahr später einen wert wie top=502.5 zu setzen

        Auch weiss ich nicht ob das ganze so die elegante Lösung ist, du öffnest ein Fenster mit einer leeren Seite. Beim IE z.b. heisst das die standrad about:blank laden. Nun ist die grosse Frage, was passiert zuerst? wird erst dein dokument-Objekt neugeschrieben oder erst about:blaank geladen. Könnte mir vorstellen das dies kollidieren kann.

        Dein ganzer "dynamisch" generierter Teil ist doch recht statisch, bis auf das Bild. Ein andere Ansatz wäre dies Seite nicht per dokument.write zu erzeugen sondern reinzuladen. Und die src des Bildes anders zu übergeben.

        z.b.
        NewWindow=window.open("picture.html","Picture","height="+ysize+",width="+xsize+",scrollbars=no,resizable=no,top="+ypos+",left="+xpos+"");
        picture = "xxx.jpg";
        und dort

        <table border='0' bgcolor='#000000'cellpadding='0' cellspacing='1'><tr><td align='center'><script language="JavaScript" type="text/javascript">
        source = opener.picture;
        document.write('<img src="'+source+'">');
        </script></td></tr></table>

        d.h. du setzt eine Variable mit der source und liesst diese dann von deinem geöffneten fenster aus aus.

        Wobei diese Lösung (wie deine auch) bei deaktiviertem JavaScript versagt.

        gl & hf

        Thorsten

      2. OK...hier ist der Quellcoder der .js-Datei:

        Wenn das ein Bildervorschau sein soll, dann hast du dir ein etwas klägliches Skript geholt.

        Probier mal das http://home.arcor.de/struebig/js/popup/popup_3.htm

        Struppi.