snapper: IE erkennt window Objekt nicht

Hallo

Ich brauche eure Hilfe, denn ich bin fast am verzweifeln.
Ich öffne Mithilfe von JavaScript ein neues Fenster und fülle dises mit Inhalten.
Beim teste mit Opera und Firefox funktioniert dies auch wie gewünscht, der InternetExplorer erkennt das window Objekt beim schließen des Schreibzugriffs nicht als Window Objekt und gibt die Fehlermeldung: "Das Objekt unterstützt diese Eigenschaft oder Methode nicht".

Diese Fehlermeldung erscheint wenn ich den Zugriff auf das Fenster mit "Fenstername.document.close();" beenden will.

Ein weiteres Problem ist der Link zur externen Skriptdatei. Dieser verursacht, jedoch auch nur beim InternetExplorer, die Fehlermedung: "nicht abgeschlossene Zeichenfolgenkonstante."

So damit ihr nicht Rätseln müsst nun der Quelltext:

function open_vorschau()
{
// Oeffnen eines Fensters zur Vorschau und mit Ihnhalt fuellen
var vorschau_test = window.open("leer.html", "Vorschau", "width=600,height=400,left=150,top=100,dependent=1");

if (vorschau_test!=null){ //Hat das Oeffnen des Fensters geklappt?
  vorschau_test.document.open(); //Oeffnen fuer Schreibzugriff,     notwendig!
  vorschau_test.document.write("<html><head><title>Vorschau</title>"+
 "<link rel='stylesheet' type='text/css' href='test.css' />"+
 "<script type='text/javascript' src='data_vorschau.js'></script>"+
 "</head><body bgcolor='#E2F1FE' onLoad='javascript:weiter();'>"+
 "<div id='test_hauptrahmen'>"+
  "<div id='test_inhalt'>"+
    "<div id='test_fragenr'>"+
      "<div id='test_frage'>"+
      "</div>"+
    "</div>"+
    "<div id='test_antworten'>"+
      "<div id='antwort_1'>"+
        "<div class='table'>"+
          "<div class='tr'>"+
           "<div class='td' style='vertical-align: middle; float:left;'><input type='checkbox' id='check1' value='check1' /></div>"+
           "<div class='td' style='width: 10px;float:left;'>&nbsp;</div>"+
           "<div class='td' style='vertical-align: middle;' id='a1'></div>"+
          "</div>"+
         "</div>"+
        "</div><br />"+
          "<div id='antwort_2'>"+
           "<div class='table'>"+
             "<div class='tr'>"+
               "<div class='td' style='vertical-align: middle;float:left;'><input type='checkbox' id='check2' value='check2' /></div>"+
               "<div class='td' style='width: 10px;float:left;'>&nbsp;</div>"+
               "<div class='td' style='vertical-align: middle;' id='a2'></div>"+
             "</div>"+
            "</div>"+
           "</div><br />"+
           "<div id='antwort_3'>"+
            "<div class='table'>"+
              "<div class='tr'>"+
                "<div class='td' style='vertical-align: middle;float:left;'><input type='checkbox' id='check3' value='check3' /></div>"+
                "<div class='td' style='width: 10px;float:left;'>&nbsp;</div>"+
                "<div class='td' style='vertical-align: middle;' id='a3'></div>"+
               "</div>"+
              "</div>"+
             "</div><br />"+
             "<div id='antwort_4'>"+
              "<div class='table'>"+
               "<div class='tr'>"+
                "<div class='td' style='vertical-align: middle;float:left;'><input type='checkbox' id='check4' value='check4' /></div>"+
                "<div class='td' style='width: 10px;float:left;'>&nbsp;</div>"+
                "<div class='td' style='vertical-align: middle;' id='a4'></div>"+
               "</div>"+
              "</div>"+
             "</div><br />"+
              "<div id='antwort_5'>"+
               "<div class='table'>"+
                "<div class='tr'>"+
                 "<div class='td' style='vertical-align: middle;float:left;'><input type='checkbox' id='check5' value='check5' /></div>"+
                 "<div class='td' style='width: 10px;float:left;'>&nbsp;</div>"+
                 "<div class='td' style='vertical-align: middle;' id='a5'></div>"+
                "</div>"+
               "</div>"+
              "</div><br />"+
              "<div id='antwort_6'>"+
               "<div class='table'>"+
                "<div class='tr'>"+
                  "<div class='td' style='vertical-align: middle;float:left;'><input type='checkbox' id='check6' value='check6' /></div>"+
                  "<div class='td' style='width: 10px;float:left;'>&nbsp;</div>"+
                  "<div class='td' style='vertical-align: middle;' id='a6'></div>"+
                 "</div>"+
                "</div>"+
               "</div>"+
              "</div>"+
              "<div align='center' id='test_bild'>"+
                "<img id='b1' border='0' width='100px' />"+
              "</div>"+
              "<div id='test_bild_zoom'>"+
                "<input type='submit' id='zoom_b1' onClick='javascript:resize_b1();' value='Vergr&ouml;ssern' style='width:80px;font-size:12px;' />"+
              "</div>"+
              "<div  id='test_bild_imagemap'>"+
                "<img id='imagemap' border='1' usemap='#imagemap_verweise' />"+
              "<div id='auswahl_ver1'></div>"+
              "<div id='auswahl_ver2'></div>"+
              "<div id='auswahl_ver3'></div>"+
              "<div id='auswahl_ver4'></div>"+
              "<div id='auswahl_ver5'></div>"+
              "<div id='auswahl_ver6'></div>"+
             "</div>"+
            "</div>"+
           "<div id='test_menue'>"+
            "<div id='test_div'>1</div><div id='test_weiter'><input type='submit' id='weiter_button' name='weiter' value='weiter' onClick='javascript:ergebnis();' /><div>"+
           "</div>"+
          "</div>"+
           "<div>"+
            "<map name='imagemap_verweise'>"+
             "<area id='verweis1' shape='rect' coords='0,0,0,0' href='#' onClick='javascript:map_verweis("auswahl_ver1");' alt='' />"+
             "<area id='verweis2' shape='rect' coords='0,0,0,0' href='#' onClick='javascript:map_verweis("auswahl_ver2");' alt='' />"+
             "<area id='verweis3' shape='rect' coords='0,0,0,0' href='#' onClick='javascript:map_verweis("auswahl_ver3");' alt='' />"+
             "<area id='verweis4' shape='rect' coords='0,0,0,0' href='#' onClick='javascript:map_verweis("auswahl_ver4");' alt='' />"+
             "<area id='verweis5' shape='rect' coords='0,0,0,0' href='#' onClick='javascript:map_verweis("auswahl_ver5");' alt='' />"+
             "<area id='verweis6' shape='rect' coords='0,0,0,0' href='#' onClick='javascript:map_verweis("auswahl_ver5");' alt='' />"+
            "</map>"+
           "</div>"+
          "</body></html>");
vorschau_test.document.close();  //Schreibzugriff beenden, notwendig!
   }
}

Das Objekt vorschau_test erkennt der IE nicht als window Objekt. Leider weis ich nicht warum, denn beim document.write(); ist ja noch alles ok.

Die Unterbrechung der Zeichenfolgenkonstante passiert bei der Zeile.
"<script type='text/javascript' src='data_vorschau.js'></script>"+

Ich hoffe ihr könnt mir helfen
Danke

Rene

  1. Lieber snapper,

    der InternetExplorer erkennt das window Objekt beim schließen des Schreibzugriffs nicht als Window Objekt

    Diese Fehlermeldung erscheint wenn ich den Zugriff auf das Fenster mit "Fenstername.document.close();" beenden will.

    ich sehe hier einen Widerspruch: Fenstername.DOCUMENT.close() spricht wie genau das WINDOW-Objekt an?

    Fenstername.close() hätte ich jetzt verwendet...

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. ich sehe hier einen Widerspruch: Fenstername.DOCUMENT.close() spricht wie genau das WINDOW-Objekt an?

      Fenstername.close() hätte ich jetzt verwendet...

      Ich möchte ja den Schreibzugriff, den ich mit Fenstername.document.open(); öffne, wieder schließen.
      Fenstername.close()würde das gerade geöffnete Fenster wieder schließen.

      Normalerweise lautet die korrekte Reihenfolge:

      Fenstername.document.open();
      Fenstername.document.write();
      Fenstername.document.close();

      nur leider nicht in diesem Fall, oder ich habe etws übersehen.
      Menschen machen ja auch mal Fehler.

      Danke

      Rene

      1. Liebe(r) snapper,

        Ich möchte ja den Schreibzugriff, den ich mit Fenstername.document.open(); öffne, wieder schließen.
        Fenstername.close()würde das gerade geöffnete Fenster wieder schließen.

        Normalerweise lautet die korrekte Reihenfolge:

        Fenstername.document.open();
        Fenstername.document.write();
        Fenstername.document.close();

        das ist richtig. Ich habe in Deinem ersten Posting nicht ganz bis zum Schluss gelesen. Dabei ist mir etwas aufgefallen:

        Die Unterbrechung der Zeichenfolgenkonstante passiert bei der Zeile.
        "<script type='text/javascript' src='data_vorschau.js'></script>"+

        Ich habe in anderen Javscripten gesehen, dass der String "<script ...>" und das Gegenstück "</script>" gerne so zerlegt wird:

        var string = "<sc" + "ript ..." + "</sc" + "ript>";

        Vielleicht ist das eine Lösung...?

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        1. @Felix

          Ich habe in anderen Javscripten gesehen, dass der String "<script ...>" und das Gegenstück "</script>" gerne so zerlegt wird:

          var string = "<sc" + "ript ..." + "</sc" + "ript>";

          Vielleicht ist das eine Lösung...?

          Leider wird auch mit dieser Methode die Zeichenkette aus irgendwelchen Gründen durch den InternetExplorer unterbrochen.

        2. Hi,

          "<script type='text/javascript' src='data_vorschau.js'></script>"+
          Ich habe in anderen Javscripten gesehen, dass der String "<script ...>" und das Gegenstück "</script>" gerne so zerlegt wird:
          var string = "<sc" + "ript ..." + "</sc" + "ript>";

          Das ist Unsinn.

          Die Zeichenfolge </ beendet den Inhalt eines script- (oder style-) Elements.
          Mit der genannten Zerlegung ist die Zeichenfolge aber nach wie vor enthalten.

          Es muß </ zerlegt werden. Am einfachsten, indem man den / entwertet (also einen Backslash davor setzt): </

          So wie es snapper ja getan hat.

          Warum er den / im type-Attribut entwertet hat, weiß ich nicht, nötig ist es nicht.

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          O o ostern ...
          Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. Hi,

    ich habe deinen Code mal getestet.

    function open_vorschau()
    {
    // Oeffnen eines Fensters zur Vorschau und mit Ihnhalt fuellen
    var vorschau_test = window.open("leer.html", "Vorschau", "width=600,height=400,left=150,top=100,dependent=1");

    if (vorschau_test!=null){ //Hat das Oeffnen des Fensters geklappt?
      vorschau_test.document.open(); //Oeffnen fuer Schreibzugriff,     notwendig!
      vorschau_test.document.write("<html><head><title>Vorschau</title>"+
    "<link rel='stylesheet' type='text/css' href='test.css' />"+
    "<script type='text/javascript' src='data_vorschau.js'></script>"+
    "</head><body bgcolor='#E2F1FE' onLoad='javascript:weiter();'>"+

    Hier bekomme ich einen Fehler, weil "weiter()" nicht definiert ist (besser wäre übrigens: "onload='weiter()'"). Wenn ich den onload aber herausnehme, öffnet IE die neue Seite ohne Fehlermeldung. Daher vermute ich, dass der Fehler in "data_vorschau.js" verursacht wird.

    Grüße,
    Stefan

    1. Hi Stefan

      Daher vermute ich, dass der Fehler in "data_vorschau.js" verursacht wird.

      Du hast recht, habe nun eine andere externe Datei eingebunden und dort eine Funktion weiter() erstellt.
      Das Resultat keine Fehler mehr.

      Danke für Deine Hilfe und die Mühe. Werde mich nun auf die Suche in der data_vorschau.js machen.

      Grüße

      Rene

    2. @all

      Vielen Dank für eure Hilfe, ich habe den Fehler endlich gefunden.
      Es war ein kleines unscheinbares "ü" in einer alert() Meldung.
      Eigentlich kein Problem aber in diesem mir noch immer unklarem Fall, war dieses "ü" der gesamte Verursacher für die Fehler.

      Danke nochmal an alle und besonders an Stefan

      Rene