Michael Schäfer: IE 4.0 im Vordergrund

Hallo Experten!
Ich  habe ein Java-Script, aus dem ich nach anklicken eines Buttons mitels
Druckfenster=window.open("","Druckfenster","status=no,dependant=yes,menubar=no");
ein "Druckfenster" öffne.
Beim neu öffnen des Fensters kommt der IE4.0 auch brav in den Vordergrund. Falls der Anwender das Druckfenster nicht schließt, sondern nur minimiert und dann erneut den Button klickt, wird zwar der korrekte Inhalt in das Fenster geschrieben, dieses bleibt jedoch minimiert.
Das führt bei den Anwendern zur Verwirrung und Fehlermeldungen. Hat jemand ne Idee, ob und wie es möglich ist den Exploren in den Vordergrund zu bekommen?
Gruß Michael

  1. Hallo Michael

    Beim neu öffnen des Fensters kommt der IE4.0 auch brav in den Vordergrund. Falls der Anwender das Druckfenster nicht schließt, sondern nur minimiert und dann erneut den Button klickt, wird zwar der korrekte Inhalt in das Fenster geschrieben, dieses bleibt jedoch minimiert.

    Hier mal ein denkbarer "Workaround":

    <html><head><title></title>
    <script language="JavaScript">
    Fenster = 0;
    function Druckfenster()
    {
    if(Fenster) Fenster.close();
    Fenster = window.open("","Druckfenster","status=no,dependant=yes,menubar=no");
    }
    </script>
    </head>
    <body>

    <a href="javascript:Druckfenster()">Link 1</a><br>
    <a href="javascript:Druckfenster()">Link 2</a><br>

    </body>
    </html>

    Sollte das Fenter schon oder noch offen sein, wird es erst mal zugemacht.

    viele Gruesse
      Stefan Muenz

    1. Hallo Stefan>

      Vielen Dank! Aber irgenwie klappt es bei mir nicht, da die if-Abfrage nie erfüllt ist.
      Folgendes funktioniert bei mir nicht:
      <HTML>
      <head><title>Auswahl</title>
      <script language="JavaScript">
      Fenster=0;
      function Links_aufbauen()
      {
      var TEXT;
      TEXT="<h2>Folgendes wurde ausgewählt:</h2>";
      if(document.Formular.Komplett.checked == true)
      {
      TEXT=TEXT +"<a href='"+document.Formular.Komplett.value+"'>"+document.Formular.Komplett.value+"</a><br>";
      }
      if(document.Formular.Deckblatt.checked == true)
      {
      TEXT=TEXT +"<a href='"+document.Formular.Deckblatt.value+"'>"+document.Formular.Deckblatt.value+"</a><br>";
      }
      document.close();
      if(Fenster) Fenster.close();
      Fenster = window.open("","Druckfenster","status=no,dependant=yes,menubar=no");
      Fenster.document.write(TEXT);
      Fenster.document.close();
      }
      </script>
      </head>
      <BODY>
      <h1>Auswahl</h1>
      <form name="Formular" onSubmit="Links_aufbauen()">
      <p><input type=checkbox name="Komplett" value="Komplett.html"> Komplett</p>
      <p><input type=checkbox name="Deckblatt" value="Deckblatt.html"> Deckblatt</p>
      <p><input type=submit value="Auswahl anzeigen">
      </form>
      </BODY>
      </HTML>
      Trotz einiger Suche find ich keinen Unterschied zu deinem Vorschlag. Siehst Du was?
      Michael

      1. Hallo,

        Vielen Dank! Aber irgenwie klappt es bei mir nicht

        Hm, warum benutzt Ihr nicht die focus()-Methode? Dafuer ist sie doch da.

        Ich wuerde es etwa so machen:

        <script language="JavaScript">
        Fenster=0;
        function Links_aufbauen()
        {
          var TEXT = "<h2>Folgendes wurde ausgewählt:</h2>";
          if (document.Formular.Komplett.checked == true)
          {
            TEXT+= "<a href='"+document.Formular.Komplett.value+"'>"+document.Formular.Komplett.value+"</a><br>";
          }
          if (document.Formular.Deckblatt.checked)
          {
            TEXT+= "<a href='"+document.Formular.Deckblatt.value+"'>"+document.Formular.Deckblatt.value+"</a><br>";
          }
          if ((Fenster == 0) (Fenster.closed));
            Fenster = window.open("","Druckfenster","status=no,dependent=yes,menubar=no");
        // dependent war uebrigens falsch geschrieben
        // ausserdem wuerde ich das lieber ganz weglassen, weil sonst
        // bei voller Fenstergroesse mit Netscape nur schliessen geht, um an das
        // Ursprungsfenster zu kommen.
          Fenster.document.write(TEXT);
          Fenster.document.close();
          if (Fenster.focus)
            Fenster.focus();
        // Abfrage dient nur dazu, falls sich wer mit Altbrowsern (hier Netsacpe2)
        // auf die Seite verirrt, den nicht mit Fehlern zu bombardieren
        }
        </script>

        <FORM NAME="Formular" onSubmit="Links_aufbauen();return false">
        ...
        <!-- return false sollte schon da stehen -->

        Das sollte klappen mit einem kleinen Wehrmutstropfen.
        MSIE3 bringt sehr wahrscheinlich dann eine Fehlermeldung, wenn der Besucher das Fenster geschlossen hat und dann den Button nochmal drueckt.
        Die laesst sich mit JavaScript leider nicht abfangen.
        Ich habe da zwar vor langer Zeit mal einen Weg gebastelt, der Sache durch Benutzung von VB-Script in einigen Passagen aus dem Weg zu gehen.
        Allerdings macht das dann schon Aufwand. Und ob der fuer den einen Browser und dann auch noch fuer den sicher seltenen Fall gerechtfertigt ist?
        Fuer Netscaoe2 ist das eine einzige Abfrage, die kann man sich schon noch goennen, finde ich.

        Christine

  2. Moin Michael,

    »»  Hat jemand ne Idee, ob und wie es möglich ist den Exploren in den Vordergrund zu bekommen?

    du kannst das Fenster mit Fenster.focus() (s. <../../tecb.htm#a29>) in den Vordergrund bekommen.

    Gruß
    Dirk

    1. Super Dirk!
      Das war die Lösung.
      Danke!