Mario Wagner: document.write ie 5.1 mac

Guten Tag,

ich öffne ein neues fenster und schreibe mit document.write eine komplett neue html-seite in das document. das klappt wunderbar bis auf ie 5.1 unter mac os 9.1 ,mac os x ie 9.2 und auch bei mac browser safari. bei den drei genannten passiert folgendes. ist das fenster noch nicht geöffnet, wird das fenster geöffnet, es erscheint kurzzeitig die mit document.write hineingeschriebene Seite und nach etwa 1 sec wird die mit window.open aufgerufene seite angezeigt. sobald ich die funktion nochmal aufrufe funktioniert es. auch kann ich das fenster schließen und neu öffnen, es klapp. sobald ich aber die haupseite wechsle (wenn fenster noch geöffnet, dann wird es automatisch über die function fenster_zu geschlossen) und zuvor das fenster geschlossen habe, tritt der fehler wieder auf. Nur nicht, wenn das fenster über die function geschlossen wird. ich hoffe jemand konnte verstehen was ich meinte!!

hier ist der code:

Attribute='toolbar=no,location=0,directories=no,status=no,menubar=0,scrollbars=no,resizeable=no,width=610,height=350,left=' + positionleft + ',top=' + positiontop;

if (typeof(gfenster_pop) != "object") {

gfenster_pop=window.open('default_pop.html','Popup',Attribute);
   } else {

if (gfenster_pop.closed) {

gfenster_pop=window.open('default_pop.html','Popup',Attribute);
   }
   }
   gfenster_pop.document.close();
   gfenster_pop.focus();

gfenster_pop.document.open();
 gfenster_pop.document.write(seite_neu);
 gfenster_pop.document.close();

}

function fenster_zu() {
 if (typeof(gfenster_pop)=="object"){

if (gfenster_pop.closed==true ) {

//gfenster_pop=false;
  }else{

gfenster_pop.close();
  }

}

}

für jeden kleinen tipp wäre ich sehr dankbar!!

LG Mario

  1. Hallo,

    interessantes Problem, das auch logisch nachvollziehbar klingt. Durch
      gfenster_pop=window.open('default_pop.html','Popup',Attribute);
    wird ein neues Fenster geöffnet, und durch
      gfenster_pop.document.open();
      gfenster_pop.document.write(seite_neu);
      gfenster_pop.document.close();
    dann in dieses geschrieben. Jetzt ist natürlich klar, daß entscheidend ist, ob zu dem Zeitpunkt, wo man mittels write neuen Inhalt in das Fenster schreibt, bereits die default-Seite geladen ist oder nicht. Falls dies nicht der Fall ist, überschreibt diese default-Seite dann denn per JS generierten Inhalt, denn das Javascript im Hauptfenster läuft ja weiter und wartet nicht erst darauf, daß die default-Seite ins Popup geladen wird.

    Hast Du schonmal versucht, mit "about:blank" statt "default_pop.html" zu arbeiten, so daß ne leere Seite geladen wird?

    Ein (allerdings eher übles) Workaround wäre, einfach immer schonmal prophylaktisch das Popup im Hintergrund zu öffnen und wieder zu schließen, etwa beim Event onload im body des Hauptdokuments.

    Tschau,
    apstrakt

    --
    http://www.cafe-abstrakt.de
    1. Hallo apstrakt,

      vielen vielen Dank für Deinen Hinweis. Jetzt klappt es bei den beiden ie's. nur bei safari ist der fehler nicht behoben, aber ich denke mit diesen Fehler bei diesen Browser kann ich leben. Nur werden jetzt meine css nicht mehr angezeigt. Muß mal sehen wie ich das löse! Nochmals vielen Dank!!!

      Mario