Maz: neu geöffnete Fenster nach vorne - ABER mit Formularfelder

Nach vielen verschiedenen Lösung im Archiv, finde ich aber leider keine, die mir bei dem folgenden Problem weiterhilft:

Ich öffne mittels JS eine neues Fenster:
++++++++++++++++++++++++++++++++++++++++

Datei 1:

...onLoad="openWindow('neue Datei.html','update','width=415,height=250');history.back(-1)"...

Datei 2:

...function nachvorn()
{self.focus();window.setTimeout("nachvorn()",1000);}

<body onload="nachvorn()">...

++++++++++++++++++++++++++++++++++++++++

Durch die Funktion "nachvorn" erreiche ich, daß das neue Fenster nicht von dem 1. Fenster verdeckt wird, da dieses durch "history.back(-1)" den focus erhält.
Das neue Fenster bleibt zwar vorne, aber Einträge in dessen Formulafelder sind unmöglich.

Gibt es Jemanden, der mir einen Ausweg aus dem Problem aufzeigt?

Vielen Dank

maz

  1. Hi,

    Das neue Fenster bleibt zwar vorne,

    ja. Aber warum soll es das? Der Benutzer wird schon einen Grund haben, wenn er sich ein anderes Fenster in den Vordergrund holt - und möglicherweise hat der sogar was mit dem Formular zu tun.

    Warum willst Du ihm das unmöglich machen? Einmal zu Beginn das Fenster zu fokussieren ist schon mehr(!) als genug... unter Umständen stört den Benutzer nämlich bereits das.

    Cheatah

    1. Hi,

      Das neue Fenster bleibt zwar vorne,

      ja. Aber warum soll es das? Der Benutzer wird schon einen Grund haben, wenn er sich ein anderes Fenster in den Vordergrund holt - und möglicherweise hat der sogar was mit dem Formular zu tun.

      Warum willst Du ihm das unmöglich machen? Einmal zu Beginn das Fenster zu fokussieren ist schon mehr(!) als genug... unter Umständen stört den Benutzer nämlich bereits das.

      Cheatah

      In dem neuen Fenster müssen einige Formfelder vom Benutzer ausgefüllt werden. Wenn das neue Fenster aber öffnet, wird es sofort vom 1. Fenster verdeckt und evt. nicht erkannt. (Hat ja nicht jeder 2 Monitore)

      1. Hi,

        In dem neuen Fenster müssen einige Formfelder vom Benutzer ausgefüllt werden.

        wenn sie ausgefüllt werden _müssen_, solltest Du das Formular nicht _neben_ anderen Inhalten anzeigen, sondern zwingend den Weg _durch_ das Formular führen! Kein neues Fenster.

        Wenn das neue Fenster aber öffnet, wird es sofort vom 1. Fenster verdeckt

        Häh? Du hast eine merkwürdige System-Umgebung. Bei allen mir bekannten Systemen wird ein neu geöffnetes Fenster üblicherweise fokussiert.

        (Hat ja nicht jeder 2 Monitore)

        Stimmt - manche haben gar keinen.

        Cheatah

        1. wenn sie ausgefüllt werden _müssen_, solltest Du das Formular nicht _neben_ anderen Inhalten anzeigen, sondern zwingend den Weg _durch_ das Formular führen! Kein neues Fenster.

          Danke für Deine Zeit.
          In dem konkreten Bsp. wird der Inhalt von bestehenden Websites durch einen externen Service ergänzt. Dieser Service ist zeitlich befristet und liegt nicht im gleichen Web. Das neue Formularfenster ist in einem neutralen Design für viele Websites nutzbar.

          Häh? Du hast eine merkwürdige System-Umgebung. Bei allen mir bekannten Systemen wird ein neu geöffnetes Fenster üblicherweise fokussiert.

          Durch "history.back(-1)" im 1. Fenster erhält Dieses aber sofort den Focus zurück und verdeckt das neue Fenster. (nur im NS)

          Nochmal xanks für Deine Zeit.

          1. Hi,

            In dem konkreten Bsp. wird der Inhalt von bestehenden Websites durch einen externen Service ergänzt. Dieser Service ist zeitlich befristet und liegt nicht im gleichen Web. Das neue Formularfenster ist in einem neutralen Design für viele Websites nutzbar.

            es wurde augenscheinlich schlecht konzeptioniert, wenn solche Probleme nicht im Vorfeld bedacht und entsprechende Lösungen angeboten wurden. Es wäre ein leichtes, durch die Übergabe einer simplen ID den Redirect nach dem Formular-Submit auf die Seite Deiner Wahl zu lenken.

            Durch "history.back(-1)"

            history.back() erwartet keinen Parameter. Du meinst vermutlich history.go(-1).

            im 1. Fenster erhält Dieses aber sofort den Focus zurück und verdeckt das neue Fenster. (nur im NS)

            Warum auch nicht? Wenn man zurück will, will man dies bestimmt nicht in irgendeinem frisch geöffneten Fenster. Will man jedoch in diesem bleiben, benutzt man kein "Back" oder andere Navigationselemente.

            Warum überhaupt history.back()? Alle Browser, die ich kenne, haben einen Button dafür, der sich exakt an der Stelle befindet, wo ich ihn erwarte. Ich muß nicht suchen und brauche auch nicht JavaScript dafür anzuschalten (falls ich das überhaupt darf).

            Cheatah

            1. Tausen Dank Cheatah,

              ich hab ne Menge dazugelernt.
              Jetzt hau´ ich erstmal allen Deppen, die Ihre Websites nicht richtig geplant haben was aufs Maul, da ich mit dem vorhandenem Müll nix anfangen kann und nun mit meinen Ideen darauf warte, daß sich das WWW an alle Regeln der W3C-Werte-und-Normen hält.

              Da ich davon ausgehe, daß das in den nächsten 67 Jahren nicht passieren wird schreib ich dann gleich morgen ne Bewerbung für eine Ausbildung zum Bäcker. (mit Hand!!!)

              Nun mal ernst, ich denke, es wird ein Kampf gegen Windräder auf  Strukturen des reinen HTML´s zu drängen, wenn es durch das offene System eben die Möglichkeiten gibt, Wege zu beschreiten, die ebenfalls zum Ziel führen. Bei der starken Frequentierung des Forum´s sei doch der Versuch erlaubt auch mal fernab der "Norm" auf evt. gemachte Erfahrungen Anderer zuzugreifen.

              Da ich hier aber nicht als Weltverbesserer auftreten möchte und diese Konflikte tausendfach durchdiskutiert wurden, halt ich meine Klappe und bedanke mich nochmal für Deine Zeit.
               Dieses Forum ist schuld daran, daß ich Das kann, was ich kann... DANKE.

  2. Hallo !

    Wenn ich die Fragestellung richtig verstanden habe, also:

    1. Das alte Fenster eine Seite zurück springen, und dann
    2. Ein Popup-Fenster öffnen soll, das den Focus erhält,

    frage ich mich, warum du nicht gleich diese Reihenfolge so in dein JavaScript schreibst, also:

    statt:

    ...onLoad="openWindow('neue Datei.html','update','width=415,height=250');history.back(-1)"...

    einfach:
    ...onLoad="history.go(-1);openWindow('neue Datei.html','update','width=415,height=250')"...

    Das 2. Script nachvorn() entfiele dann komplett.

    Gruß,

    kerki

    1. Hi,

      ...onLoad="history.go(-1);

      an dieser Stelle springt der Browser eine Seite zurück...

      openWindow('neue Datei.html','update','width=415,height=250')"...

      ...und kriegt hiervon gar nichts mehr mit.

      Cheatah

      1. Hallo Cheatah.

        ...onLoad="history.go(-1);

        an dieser Stelle springt der Browser eine Seite zurück...

        openWindow('neue Datei.html','update','width=415,height=250')"...

        ...und kriegt hiervon gar nichts mehr mit.

        Also, wenn das Script zum Öffnen des Fensters im Head eingebaut wird, wird es doch ausgeführt, bevor die Seite komlett geladen ist und der Opener durch onLoad wieder zurück geschickt wird?!
        Oder habe ich da einen Denkfehler?

        Gruß,
        olli

        1. Hi,

          Oder habe ich da einen Denkfehler?

          der Denkfehler ist, daß dies vorher im Prinzip das gleiche war: erst wurde das Fenster geöffnet, dann ging es zurück. Durch die letztgenannte Aktion wird aber der Fokus wieder auf dieses Fenster gesetzt, wodurch das Popup in den Hintergrund gedrängt hat.

          Wobei ich noch immer nicht wirklich verstehe, warum unbedingt ein Popup geöffnet werden muß - und noch viel weniger, warum in Tims Namen automatisch zurückgegangen werden muß! Da hätte doch das Fenster auch gleich direkt geöffnet werden können, ohne Umweg über eine neue Seite.

          Cheatah

      2. Hallo Cheatah !

        Vielleicht bin ich ja blind oder blöd, oder ich verstehe dich falsch, aber wenn ich folgendes schreibe ...

        <body onload='history.back(); window.open("tralala");'>

        ... führen alle mir bekannten (JS-fähigen) Browser beide Befehle aus!

        Sie springen im aufrufenden Browserfenster eine Seite zurück _und_ öffnen ein neues Fenster.

        Bei Opera 5.11, NN 4.7 und IE 5.5 liegt der Fokus dann - wie gewünscht - im geöffneten Fenster, im NN 6 und Mozilla 0.8 leider nicht. Hier wäre also doch ein 2. Script im Popup-Dokument nötig, wobei ich nicht getestet habe, ob es überhaupt etwas bringt.

        Ein kleines Beispiel habe ich auch gleich parat:

        http://www.forum-niederrhein.de/test/

        Dies ist zwar eine Spielerei, ich könnte mir aber durchaus auch einen nützlichen Verwendungszweck vorstellen.

        Gruß,

        kerki

        BTW: Wieso ist eigentlich ein <noscript>-Teil nicht auch in einem <head>-Bereich erlaubt? Ich finde die Verwendung, so wie ich es mir im Beispiel dachte, eigentlich sehr nützlich.