Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Url mit Javascript in bestimmtem Zielfenster öffnen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Url mit Javascript in bestimmtem Zielfenster öffnen

    Ich versuche, mit Javascript das Verhalten eines Links mit gesetztem Attribut "target" nachzuvollziehen.

    Kann ich mit Javascript eine Url in einem benannten Fenster öffnen, das bereits existiert? Bitte nur crossbrowser-fähige Antworten.
    Beispiel:
    Code:
    window.open(url, fenstername);
    In diesem Fall habe ich keinen Zugriff auf das Objekt des eventuell bereits geöffneten gleichnamigen Fensters. Gibt es eine Möglichkeit, das Objekt zu finden? Dann könnte man nämlich folgendes machen:
    Code:
    fensterObjekt.location.href = url;


  • #2
    Steht gut dokumentiert bei Selfhtml. Mit Beispiel.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Zitat von nikosch77-new Beitrag anzeigen
      Steht gut dokumentiert bei Selfhtml. Mit Beispiel.
      In der Doku steht kein Wort davon, dass das Javascript "window.open" im bereits offenen, gleichnamigen Fenster öffnet, sondern dass ein Html-Link mit "target"-Attribut im bereits offenen, gleichnamigen Fenster landet.

      Das Beispiel funktioniert im FF3 wie ich es brauche. Da die Doku aber meine Frage nicht beantwortet, müsste ich jetzt jeden Browser testen. Da frage ich lieber nach.

      Kommentar


      • #4
        Steht also nicht. Soso.
        Code:
        <html><head><title>Test</title>
        <script type="text/javascript">
        function FensterOeffnen (Adresse) {
          MeinFenster = window.open(Adresse, "Zweitfenster", "width=300,height=200,scrollbars=yes");
          MeinFenster.focus();
        }
        </script>
        </head><body>
        <a href="datei2.htm" onclick="FensterOeffnen(this.href); return false">Neues Fenster</a>
        </body></html>
        Erläuterung:

        Die Beispieldatei enthält einen Verweis. Beim Anklicken dieses Verweises wird die JavaScript-Funktion FensterOeffnen() aufgerufen. Diese Funktion öffnet ein neues, kleines Browser-Fenster und zeigt darin die Datei datei2.htm an. Eine genauere Erklärung sowie weitere Einzelheiten zum Öffnen neuer Fenster werden bei der Methode nach unten open() beschrieben. Ein solches Fenster ist nach dem Erzeugen mit der Variablen ansprechbar, in der die Fensterinstanz gespeichert ist. Im Beispiel ist das die Variable MeinFenster. Über diesen Instanznamen können Sie alle Eigenschaften und Methoden des erzeugten Fensters ansprechen.
        alle Eigenschaften und Methoden des erzeugten Fensters. Z.B. location.href
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Zitat von nikosch77-new Beitrag anzeigen
          Steht also nicht. Soso.
          alle Eigenschaften und Methoden des erzeugten Fensters. Z.B. location.href
          Das ist mein Eingangsposting:
          Zitat von Normalo Beitrag anzeigen
          [...]In diesem Fall habe ich keinen Zugriff auf das Objekt des eventuell bereits geöffneten gleichnamigen Fensters. Gibt es eine Möglichkeit, das Objekt zu finden? Dann könnte man nämlich folgendes machen:
          Code:
          fensterObjekt.location.href = url;
          Das bedeutet, ich habe das Objekt des eventuell zuvor geöffneten, gleichnamigen Fensters nicht zur Verfügung.

          Kommentar


          • #6
            Verstehe ich nicht. Du kannst window.open(url, fenstername); nicht um eine Variable erweitern, oder wie?

            Du kannst versuchen, aus dem Popup über opener eine JavaScript Variable des Hauptfensters auf den self Wert zu setzen. Ist aber Spekulation.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Zitat von nikosch77-new Beitrag anzeigen
              Verstehe ich nicht. Du kannst window.open(url, fenstername); nicht um eine Variable erweitern, oder wie?
              Es geht darum, dass ich an dieser Stelle meines Codes keine Kenntnis davon habe, welche Fenster von der Webanwendung bereits geöffnet wurden, weil das nicht durch meinen Code passiert ist.

              Zitat von nikosch77-new Beitrag anzeigen
              Du kannst versuchen, aus dem Popup über opener eine JavaScript Variable des Hauptfensters auf den self Wert zu setzen. Ist aber Spekulation.
              Also für diese unsichere Lösung reiß ich mir kein Bein aus. Ich mach's mit "window.open", das ja im FF3 funktioniert. In anderen Foren hab ich gelesen, dass sich "window.open" genau so verhält wie ein Html-Link mit einem "target"-Attribut.

              Danke für deine Hilfe!

              Kommentar


              • #8
                Es gibt keine Möglichkeit irgendwo im Script rauszufinden, welche Fenster vorher von einem Script der gleichen Seite geöffnet wurden. Aber warum hast du denn nicht gleich im ersten Post geschrieben, dass Scripts vorhanden sind, die du nicht manipulieren kannst? Keiner von uns kann hellsehen oder was weiss ich. Dann muss man sich nicht wundern, dass man komische Antworten kriegt.

                Deinen ersten Post verstehe ich so, dass du mit window.open selber ein neues Fenster aufmachst, nachher aber irgendwie doch nicht drauf zugreifen kannst, was aber ziemlich unlogisch ist.

                Kommentar


                • #9
                  Zitat von Montellese Beitrag anzeigen
                  Es gibt keine Möglichkeit irgendwo im Script rauszufinden, welche Fenster vorher von einem Script der gleichen Seite geöffnet wurden.
                  Richtig.
                  Zitat von Montellese Beitrag anzeigen
                  Aber warum hast du denn nicht gleich im ersten Post geschrieben, dass Scripts vorhanden sind, die du nicht manipulieren kannst?
                  Wozu? Die Fragen und Infos sollten eindeutig sein. Da steht explizit, dass ich "in diesem Fall" keinen Zugriff auf das Objekt habe. Das hab ich sogar wiederholt.
                  Zitat von Montellese Beitrag anzeigen
                  Keiner von uns kann hellsehen oder was weiss ich. Dann muss man sich nicht wundern, dass man komische Antworten kriegt.
                  Vielleicht ist das Problem, dass du über deinen eigenen Versuch der Hellseherei stolperst. Du kannst mich bei Unklarheiten einfach fragen. Und was hat das mit "komischen" Antworten zu tun?
                  Zitat von Montellese Beitrag anzeigen
                  Deinen ersten Post verstehe ich so, dass du mit window.open selber ein neues Fenster aufmachst
                  Halbe Wahrheit. Ich möchte ein Fenster aufmachen, wenn es noch nicht existiert.

                  Ich denke, es bringt mich hier nicht weiter. Ich habe mich schon für "window.open" entschieden und behalte das so bei.

                  Kommentar


                  • #10
                    Ich, und soweit ich das sehe auch nikosch, haben deinen ursprünglichen Post so verstanden, dass du ein Fenster mit window.open() öffnest und dann, aus irgendwelchen unerklärlichen Gründen, nicht auf das neue Fenster und seine Elemente zugreifen kannst.

                    Ich bin nicht über einen Versuch der Hellseherei gestolpert, da ja nikosch bereits die entsprechenden Fragen gestellt hatte, deshalb war das für mich gar nicht mehr nötig. Ich habe eigentlich immer deine Antworten abgewartet, aber nikosch war dann mit Rückantworten wiederum schneller als ich.

                    Meiner Meinung nach ist es meist am einfachsten, wenn man dem ersten Beitrag zur Erklärung einen Code-Ausschnitt anfügt, der nicht nur aus einzelnen Befehlen besteht, die man irgendwie im Code verwendet sondern halt wirklich 1:1 aus dem Code kopiert wurde. Dann kann man sich einfacher ein Bild von der Umgebung und dem Problem schaffen. Viele Problembeschreibungen in Foren wie diesem sind zuerst einmal einfach unzureichend, was viele potentielle Helfer vielleicht abschreckt, da sie keine Lust haben, sich die Hälfte dazudenken zu müssen.
                    Ich persönlich finde auch deine Problembeschreibung in diesem Thread mehr als nur vage. Aber vielleicht ging es ja nur mir so und ich war/bin zu dämlich...
                    Die Idee von nikosch mit dem window.opener-Objekt etc würde sich meiner Meinung nach wahrscheinlich umsetzen lassen, was aber wiederum voraussetzt, dass du die geöffneten Seiten bearbeiten kannst....
                    Man könnte sich so ein Array mit allen geöffneten Fenstern erstellen und einen Eintrag sogar wieder löschen, wenn der User das Fenster schliesst.

                    Kommentar


                    • #11
                      Freut mich jedenfalls, dass ihr euch trotz meiner anstrengenden Problemdarstellung noch so viel Mühe gebt.

                      Ach, es wär so einfach, wenn eine ordentliche Struktur (Framework) in die ganze Javascript-Sache gebracht würde, die momentan auf den Seiten passiert. Da könnte man, wie du sagst, alle geöffneten Fenster in einem Array unterbringen, samt Metainformationen, wenn man will. Eine Frameworklogik könnte das Öffnen der Fenster übernehmen und somit immer über den aktuellen Zustand informiert sein. Aber es ist leider so, dass jede Funktionalität gekapselt für sich arbeitet, deshalb sogar teilweise redundant und ohne zentrale Logik.

                      Ein Budget-Verantwortlicher sieht da keinen Bedarf an Sanierungsarbeiten, der hat eher den Tunnelblick. Der Umfang ist einfach zu groß. Es betrifft vor allem empfindliche Stellen, deren Entwicklung Jahre gedauert hat. Das nochmal alles rezukonstruieren und umzustrukturieren würde einen immensen Zeitaufwand für Tests und Bugfixes bedeuten. Es geht hier um die Seiten eines großen Konzerns.

                      Vielleicht gibt's ja irgendwann nen Relaunch. Aber das ohne mich

                      Kommentar

                      Lädt...
                      X