Alex: javascript

Hallo,

ich brächte bitte eure Hilfe zum Thema Javascript.
Für euch bestimmt eine Kleinigkeit, aber für mich ist Javascript Neuland.

Zum Problem...
Ich habe auf JSFiddle eine vereinfachte form meines Anliegens hochgeladen.
Auf meiner Webseite (default.html) habe ich einige Links (link1, link2, link3), die in einem iframe (dasiframe.html - diese html Datei ist vom Inhalt leer) geöffnet werden.
Ich möchte das "link4" den aktuellen Link, der gerade im iframe geöffnet ist, öffnet ... entweder im gleichen fenster (default.html) oder in einem neuen Tab (_blank).
Wie geht das?

Gruß Alex

  1. @@Alex:

    nuqneH

    ich brächte bitte eure Hilfe zum Thema Javascript.

    ?? Was hat das mit JavaScript zu tun?

    Für euch bestimmt eine Kleinigkeit, aber für mich ist Javascript Neuland.

    Zum Problem...
    Auf meiner Webseite (default.html) habe ich einige Links (link1, link2, link3), die in einem iframe (dasiframe.html - diese html Datei ist vom Inhalt leer) geöffnet werden.

    Das ist das Problem. Frames sind out. Die Seiten können nicht als Lesezeichen gespeichert werden, die Links nicht an andere weitergegeben werden … Kaputtes Web.

    Beseitige das Problem. Beseitige Frames.

    Ich möchte das "link4" den aktuellen Link, der gerade im iframe geöffnet ist, öffnet ... entweder im gleichen fenster (default.html) oder in einem neuen Tab (_blank).
    Wie geht das?

    Mit dem target-Attribut.

    Qapla'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    1. Siehe auch den vorherigen Thread:

      https://forum.selfhtml.org/?t=217510&m=1494253

      Mathias

      1. Siehe auch den vorherigen Thread:

        https://forum.selfhtml.org/?t=217510&m=1494253

        ich beobachte beide Threads, im alten Thread kam ich leider nicht zu einer Lösung.
        Hatte gehofft, dass das Problem in diesem Thread mit JSFiddle leichter zu verstehen ist.

        Gruß Alex

    2. ich brächte bitte eure Hilfe zum Thema Javascript.

      ?? Was hat das mit JavaScript zu tun?

      Weil ich denke, dass man das nur mit JavaScript realisieren kann. Wenns ohne geht, wärs natürlich noch besser.

      Für euch bestimmt eine Kleinigkeit, aber für mich ist Javascript Neuland.

      Zum Problem...
      Auf meiner Webseite (default.html) habe ich einige Links (link1, link2, link3), die in einem iframe (dasiframe.html - diese html Datei ist vom Inhalt leer) geöffnet werden.

      Das ist das Problem. Frames sind out. Die Seiten können nicht als Lesezeichen gespeichert werden, die Links nicht an andere weitergegeben werden … Kaputtes Web.

      Beseitige das Problem. Beseitige Frames.

      Danke, ich nehme das zur Kenntnis, jedoch möchte ich trotzdem mit einem frame arbeiten.

      Ich möchte das "link4" den aktuellen Link, der gerade im iframe geöffnet ist, öffnet ... entweder im gleichen fenster (default.html) oder in einem neuen Tab (_blank).
      Wie geht das?

      Mit dem target-Attribut.

      Das ich das Ziel (gleiches Fenster - deafault.html oder neuer Tab - _blank) mit dem target-Attribut auswählen kann, wusste ich. Was ich nicht weiss, ist WIE ich den aktuellen im iframe geöffnetten Link auslesen kann und in einen anderen Link (in href) einfügen kann. Nur darum gehts mir.

      Mfg Alex

      1. WIE ich den aktuellen im iframe geöffnetten Link auslesen kann und in einen anderen Link (in href) einfügen kann. Nur darum gehts mir.

        location.href = window.frames.IFRAMENAME.location.href;

        location.href ist eine Eigenschaft, die sich per Wertzuweisung setzen lässt.

        Schematisch:
        aktuelle URL = URL der Seite im iframe.

        Inhaltlich hatte ich das schon erklärt.

        Mathias

        1. Hi,

          location.href = window.frames.IFRAMENAME.location.href;

          ich habe das JSFiddle aktualisiert mit dem was du mir geschrieben hast.
          Es funktioniert leider immer noch nicht.
          Im link4 steht

          <a id="link4" href="default.html" onclick="machwas(); return false;" target="_blank">pdf auf default.html öffnen</a>  
          
          

          drin. Versucht hatte ich das auch so schon:

          <a id="link4" href="javascript:machwas();" target="_blank">pdf auf default.html öffnen</a>  
          
          

          (QUELLE dazu hab ich gegoogelt)

          Fazit ist, dass es nicht funkntioniert.

          Bitte nochmal um Hilfe.

          Gruß Alex

          1. Hallo,

            location.href = window.frames.IFRAMENAME.location.href;

            ich habe das JSFiddle aktualisiert mit dem was du mir geschrieben hast.

            Der obige Befehl kommt in deinem Beispiel noch nicht vor. Du kannst ihn in das onclick-Attribut schreiben

            onclick="location.href = window.frames.nameiframe.location.href; return false"

            oder ein eine externe Funktion, wie du gezeigt hast

            onclick="machwas(); return false"

            Dann musst du die Funktion aber auch definieren:

            <script>  
            [code lang=javascript]function machwas() {  
              location.href = window.frames.nameiframe.location.href;  
            }
            

            </script>[/code]

            Wie gesagt, das Beispiel wird nicht funktionieren, weil die PDFs von einem anderen Server geladen werden. Das Auslesen der Adresse des Iframes ist dann nicht möglich.

            Bitte mache dich einmal mit den Grundlagen von JavaScript vertraut, sonst ist es so gut wie unmöglich, dass dir Lösungwege aufgezeigt werden.

            Grüße,
            Mathias

            1. Hey,

              ich habe das JSFiddle aktualisiert mit dem was du mir geschrieben hast.

              Nein habe ich nicht :D ... sry, hatte wohl die falsche Version reinkopiert, hier jetzt aber die aktualisierte Version.

              Der obige Befehl kommt in deinem Beispiel noch nicht vor. Du kannst ihn in das onclick-Attribut schreiben

              Jetzt aber :)

              onclick="location.href = window.frames.nameiframe.location.href; return false"

              Hatte das so auch schon versucht (ohne Erfolg), aber finde es mit der Funktion besser. So wie Sie in der aktuellen JSFiddle Version ist.

              Wie gesagt, das Beispiel wird nicht funktionieren, weil die PDFs von einem anderen Server geladen werden. Das Auslesen der Adresse des Iframes ist dann nicht möglich.

              Das habe ich auch beachtet, bei mir teste ich das natürlich mit lokalen pdf Dateien, die auch im gleichen Ordner liegen, wie die default.html und die iframe html datei.
              Hatte nur vergessen das zu erwähnen.

              Bitte mache dich einmal mit den Grundlagen von JavaScript vertraut, sonst ist es so gut wie unmöglich, dass dir Lösungwege aufgezeigt werden.

              Da bin ich aktuell ja auch dran. Die Syntax verstehe ich schon so langsam, mehr und mehr :)
              Ich habe auch mehr Javagedöns in meiner Webseite drin, aber die Sache mit dem href aus iframe auslesen habe ich alleine einfach nicht hingekriegt.

              Und es läuft auch jetzt noch nicht. Wie im aktuellen JSFiddle zu sehen, habe ich es egtl. genau so drin stehen, wie du es in deinem letzten Post geschrieben hast (natürlich bei mir mit lokalen PDF-Dateien die im gleichen Ordner liegen).

              Was passiert ist, dass wenn ich link1, link2 oder link3 anklicke und die PDF im iframe geöffnet wird und dann auf link4 ("pdf auf default.html öffnen") (in diesem Beispiel mit _blank) klicke, er einfach ein neuen Tab mit der default.html öffnet, also er ladet sozusagen die default.html neu, öffnen nicht die aktuell im iframe geladene PDF-Datei in der default.html :S

              Bitte um Hilfe :)

              Gruß Alex

              1. Hallo,

                Wie im aktuellen JSFiddle zu sehen, habe ich es egtl. genau so drin stehen, wie du es in deinem letzten Post geschrieben hast (natürlich bei mir mit lokalen PDF-Dateien die im gleichen Ordner liegen).

                Teste so etwas besser nicht mit JSFiddle, das ist verwirrend.

                Du hast JSFiddle so eingestellt, dass dein JavaScript-Code vergepackt wird und beim window.onload ausgeführt wird. Du müsstest oben links auf »no wrap - in <body>« umstellen. Aber teste lieber lokal mit einer simplen HTML-Datei.

                Was passiert ist, dass wenn ich link1, link2 oder link3 anklicke und die PDF im iframe geöffnet wird und dann auf link4 ("pdf auf default.html öffnen") (in diesem Beispiel mit _blank) klicke, er einfach ein neuen Tab mit der default.html öffnet

                Dann tritt vermutlich ein JavaScript-Fehler auf, sodass das Linkziel annavigiert wird. Öffne einmal die JavaScript-Konsole des Browsers, um die Fehlermeldung zu sehen. Ich vermute, es liegt an dem Wrapping von JSFiddle und da steht »ReferenceError: machwas is not defined«.

                Mathias

                1. Hi,

                  Wie im aktuellen JSFiddle zu sehen, habe ich es egtl. genau so drin stehen, wie du es in deinem letzten Post geschrieben hast (natürlich bei mir mit lokalen PDF-Dateien die im gleichen Ordner liegen).

                  Teste so etwas besser nicht mit JSFiddle, das ist verwirrend.

                  Du hast JSFiddle so eingestellt, dass dein JavaScript-Code vergepackt wird und beim window.onload ausgeführt wird. Du müsstest oben links auf »no wrap - in <body>« umstellen. Aber teste lieber lokal mit einer simplen HTML-Datei.

                  So mache ich das auch, ich teste das Ganze grundsätzlich NUR lokal mit lokalen Dateien =)
                  Ich kopiere meine Ergebnisse nur in JSFiddle rein, damit ihr den Code mal in action seht.

                  Was passiert ist, dass wenn ich link1, link2 oder link3 anklicke und die PDF im iframe geöffnet wird und dann auf link4 ("pdf auf default.html öffnen") (in diesem Beispiel mit _blank) klicke, er einfach ein neuen Tab mit der default.html öffnet

                  Dann tritt vermutlich ein JavaScript-Fehler auf, sodass das Linkziel annavigiert wird. Öffne einmal die JavaScript-Konsole des Browsers, um die Fehlermeldung zu sehen. Ich vermute, es liegt an dem Wrapping von JSFiddle und da steht »ReferenceError: machwas is not defined«.

                  Wie gesagt, ich teste ja nicht mit JSFiddle.
                  Ich habe jetzt mal mit dem Internet Explorer die html Datei debugged (F12, STRG+3).
                  Das ist das Ergebnis.
                  Mit der Fehlermeldung kann ich nichts anfangen, bitte nochmal um Hilfe.

                  Gruß Alex

              2. Mahlzeit Alex,

                Was passiert ist, dass wenn ich link1, link2 oder link3 anklicke und die PDF im iframe geöffnet wird und dann auf link4 ("pdf auf default.html öffnen") (in diesem Beispiel mit _blank) klicke, er einfach ein neuen Tab mit der default.html öffnet, also er ladet sozusagen die default.html neu, öffnen nicht die aktuell im iframe geladene PDF-Datei in der default.html :S

                Nur so mal als Hinweis:

                Ein Browser kann eine PDF-Datei *NIEMALS* in einem HTML-Dokument "laden"!

                Was ein Browser kann, ist eine Ressource (d.h. irgendetwas, was er sich von irgendwo holen kann - sei es lokales Dateisystem, irgendein [Netzwerk-]Laufwerk oder irgendein Web-/FTP-/o.ä.-Server) in einem (I)Frame darstellen.

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:& n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|