Wolfen69: Javascript in einem von Javascript generiertem Fenster

Ich habe ein Problem, scheinbar mit dem Netscape Navigator 4.75 dabei:

Von einer HTML-Seite ausgehend wird per Javascript ein neues Fenster geöffnet
und darin ein HTML-Code generiert.
Dieser HTML-Code beinhaltet ebenfalls eine Funktion in Javascript.
Mein Test-Browser Internet Explorer 5.5 funktioniert einwandfrei.
Beim Test-Browser NN 4.75 werden bloß die Zeilen mit dem Skript nicht
in dem Code generiert.

Kennt jemand das Problem ?
Und vielleicht eine Lösung ?
Ein externes Javascript habe ich auch schon probiert

  • das geht auch nicht.

Gibt es da eventuell eine Sperre,
die das Generieren von Javascript mit Hilfe von Javascript
aus Sicherheitsgründen untersagt ?

  1. hallo Wolfen,
    <!-- macht sich doch gut, so eine Anrede, gelle ? //-_>

    Von einer HTML-Seite ausgehend wird per Javascript ein neues Fenster geöffnet
    und darin ein HTML-Code generiert.
    Dieser HTML-Code beinhaltet ebenfalls eine Funktion in Javascript.
    Mein Test-Browser Internet Explorer 5.5 funktioniert einwandfrei.
    Beim Test-Browser NN 4.75 werden bloß die Zeilen mit dem Skript nicht
    in dem Code generiert.

    Da hast du mit an Sicherheit grenzender Wahrscheinlichkeit irgendwas reingeschrieben, was Netscape 4.7x veranlaßt, den Code nicht auszuführen. Aber sonage du keinen Code postest oder eine URL nennst, läßt sich das ja nicht checken.

    Gibt es da eventuell eine Sperre,
    die das Generieren von Javascript mit Hilfe von Javascript
    aus Sicherheitsgründen untersagt ?

    Das wäre mir neu. Es sei denn, du meinst, daß Javascript im Browser generell disabled werden kann, dann würden aber auch die "äußeren" Scriptbereiche nicht abgearbeitet.

    Grundsätzlich ist das, was du machen willst, möglich.

    Christoph S.

    1. ich tippe auf cross-browser-problem bei der js-programmierung...

      du benutzt sicher etwas, was der alte ns nicht versteht...

      Odium

      1. das problem kenn ich, ich habe mit javascript auf click ein "formular"-Fenster geöffnet ( document.writeln().. ) und wollte in dem Formular mittels einer JavaScript funktion, die ebenfalls generiert wurden, die Eingaben checken. IE kein Problem aber im Netscape (4.7) ging gar nix, zumindest nicht der Check. Ich fand das halt nach langem Suchen dann doch nicht so wichtig, aber an den verwendeten Funktionen kann es nicht liegen. Habe keine Lösung gefunden. Sorry

        1. Hi,

          das Problem hatte ich auch mal.

          Irgendwo habe ich mal gelesen, daß man für NS4 2 zusätzliche Leerzeilen mit ausgeben muß. Außerdem darf man Fenster.document.close() nicht vergessen.

          Ich glaube allerdings nicht, daß das hilft. Deswegen binde ich alle Scripts nur in die Hauptdatei ein und greife dann mittels opener. (bei Fenstern) oder parent. (bei Frames) auf das Script (Funktionen und Variablen) in der übergeordneten Datei zu.

    2. Gibt es da eventuell eine Sperre,
      die das Generieren von Javascript mit Hilfe von Javascript
      aus Sicherheitsgründen untersagt ?

      Das wäre mir neu. Es sei denn, du meinst, daß Javascript im Browser generell disabled werden kann, dann würden aber auch die "äußeren" Scriptbereiche nicht abgearbeitet.

      Ich darf zitieren:
      "Einzige Ausnahme: Wird ein Fenster mit window.open("") geöffnet, so kann es vom selben Skript
      aus mit document.write() beschrieben werden. Die 16-Bit-Version Version 3.03 SP1 des
      Microsoft Internet Explorer jedoch enthält ein besonderes »Sicherheitsfeature«: Sie können mit
      window.open("") erzeugte Fenster so nicht mehr verändern; es erscheint dann eine
      Fehlermeldung!"
      (Quelle: http://www.galileocomputing.de/openbook/javascript/javascript10.htm)

      Das ist so etwas ähnliches.
      Und wenn es solche Sicherheitssperren gibt,
      warum nicht auch andere ?!

  2. Ihr habt Recht.
    Hier ist das Skript:

    function Fenster(name,hoch,weit)
      {
      var Bezug = 650 / 500;
      var horizontal = Math.floor((screen.width - weit) / 2);
      var vertikal = Math.floor((screen.height - hoch - 30) / 2);
      if( screen.height < 768)
       {
       var name = "klein/" + name;
       var weit = Math.floor(weit / Bezug);
       var hoch = Math.floor(hoch / Bezug);
       }
      var name = "Person/" + name;
      var optionen = "width=" + weit + ",height=" + hoch + ",left=" + horizontal + ",top=" + vertikal + ",scrollbars=no,dependent=yes,resizable=no";
      MeinFenster = window.open("leer.htm", "Bild", optionen);
      MeinFenster.focus();
      MeinFenster.document.close();
      MeinFenster.document.open();
      MeinFenster.document.writeln("<head><title>Zum Schließen ins Bild klicken !   </title>");
      MeinFenster.document.writeln("<script src=right.js type=text/javascript></script></head>");
      MeinFenster.document.writeln("<body bgcolor=#000000 text=#000000 leftmargin=0 topmargin=0 marginwidth=0 marginheight=0 onBlur=self.focus()>");
      MeinFenster.document.writeln("<a href=javascript:self.close()><img src=" + name + " border=0 vspace=0 hspace=0 align=middle></a>");
      MeinFenster.document.writeln("</body>");
      MeinFenster.document.close();
      }

    Es läuft alles,
    nur "<script src=right.js type=text/javascript></script>"
    wird nicht in den Quelltext des neuen Fensters geschrieben.
    Wo ist das Problem ?

    Vielen Dank für die Hilfe.

    1. Hi,

      schreib mal die Zeile:

      MeinFenster.document.writeln("<script src=right.js type=text/javascript></script></head>");

      So:

      MeinFenster.document.write("<script src='right.js' type='text/javascript'></scr");
      MeinFenster.document.write("ipt></head>");

      (Vielleicht mußt Du das erste <script ...> auch noch zerlegen.)

      Und setzt mal die Anführungszeichen ('), wo sie hin müssen, also z.B.:

      MeinFenster.document.writeln("<a href=javascript:self.close()><img src=" + name + " border=0 vspace=0 hspace=0 align=middle></a>");

      MeinFenster.document.writeln("<a href='javascript:self.close()' ...

      CU

      Ronny