Heike: der richtige Aufruf für einen parent

Hallo,
ich habe einen Link, der einen iframe über DIV-Container aufruft. Da dieser DIV-Container dynamisch alle meinen Links zugeordnet werden soll, ist es notwendig, die Inhalte des aufgerufenen iframes dynamisch zu wechseln. Ich habe versucht, mit (this).parent.href die src aus dem A-Tag aufzurufen, aber das funktioniert nicht. Wie muß der Aufruf für die src lauten? Hier der Ausschnitt mit dem href und dem DIV:

<td style="border:1px solid #010101;" width="159"><p class="tablebodytext"><strong class="blau-fett"><a id="h6594" class="popuponhovertemplate" title="AV" href="6224.htm">AV</a></strong></p>
<div id="window" onclick=window["hasFocus"]=true>
<div id="windowTop">
    <div id="windowTopContent" onclick=window["hasFocus"]=true ></div>
<img src="images/window_min.jpg" id="windowMin" />
    <img src="images/window_max.jpg" id="windowMax" />
    <img src="images/window_close.jpg" id="windowClose" />
</div>
<div id="windowBottom" onclick=window["hasFocus"]=true><div id="windowBottomContent">&nbsp;</div></div>
<div id="windowContent" style="overflow:auto">
  <iframe onclick="if (window.parent && window.parent.autoIframe) {window.parent.autoIframe('iframe');}" height="900px" width="900px" src="javascript:window.parent.href" value="this.parent.href" align="top" frameborder="0" marginwidth="5px" marginheight="5px" onclick=window["hasFocus"]=true class="bodytext"></iframe>
  </div>
<img src="images/window_resize.gif" id="windowResize" />
</div>
</td>
Kann mir jemand bitte helfen?
Gruß
Heike

  1. Hallo,
    ich habe einen Link, der einen iframe über DIV-Container aufruft. Da dieser DIV-Container dynamisch alle meinen Links zugeordnet werden soll, ist es notwendig, die Inhalte des aufgerufenen iframes dynamisch zu wechseln. Ich habe versucht, mit (this).parent.href die src aus dem A-Tag aufzurufen, aber das funktioniert nicht. Wie muß der Aufruf für die src lauten? Hier der Ausschnitt mit dem href und dem DIV:

    Deine Beschreibung ist etwas verwirrend, ich versuche sie aber dennoch zu deuten:

    this.parent.href auf ein beliebiges a-Element in deinem Dokument selektiert das href-Attribut des Elternelements des Links. Das ist auf keinen Fall - egal wie du es anstellst - das Dokument in dem das iframe-Element eingebunden ist, welches deinen Link enthält.

    http://aktuell.de.selfhtml.org/artikel/javascript/fensterzugriff/

    Du musst also zuerst mit "top" auf das übergeordnete Dokument und dort - in welcher Form auch immer (getElementsByTagName() ist z.B. eine Möglichkeit) - das iframe-Element suchen und dessen src-Attribut ändern.

    1. Deine Beschreibung ist etwas verwirrend, ich versuche sie aber dennoch zu deuten:

      this.parent.href auf ein beliebiges a-Element in deinem Dokument selektiert das href-Attribut des Elternelements des Links. Das ist auf keinen Fall - egal wie du es anstellst - das Dokument in dem das iframe-Element eingebunden ist, welches deinen Link enthält.

      http://aktuell.de.selfhtml.org/artikel/javascript/fensterzugriff/

      Du musst also zuerst mit "top" auf das übergeordnete Dokument und dort - in welcher Form auch immer (getElementsByTagName() ist z.B. eine Möglichkeit) - das iframe-Element suchen und dessen src-Attribut ändern.

      Aber muß ich denn nicht genau umgekehrt vorgehen? Ich BIN ja schon in iframe und will den href "von oben" auslesen?!

      Wenn ich zu verwirrend war, versuche ich es nochmals zu beschreiben: Ich habe eine Doku, in die ich Begriffserklärungen über kleine Fenster einblenden will. Das funktioniert soweit ganz gut. Aber ich muß, um es in meiner Autoren-Software automatisieren zu können, diese DIVs dynamisch öffnen und füllen lassen. Ich habe also nur ein DIV-Fenster, das so aussieht:

      <div id="window" onclick=window["hasFocus"]=true>
      <div id="windowTop">
          <div id="windowTopContent" onclick=window["hasFocus"]=true ></div>
      <img src="images/window_min.jpg" id="windowMin" />
          <img src="images/window_max.jpg" id="windowMax" />
          <img src="images/window_close.jpg" id="windowClose" />
      </div>
      <div id="windowBottom" onclick=window["hasFocus"]=true><div id="windowBottomContent">&nbsp;</div></div>
      <div id="windowContent" style="overflow:auto">
        <iframe onclick="if (window.parent && window.parent.autoIframe) {window.parent.autoIframe('iframe');}" height="900px" width="900px" src="javascript:this.top.location.parent.href" value="this.top.location.parent.href" align="top" frameborder="0" marginwidth="5px" marginheight="5px" onclick=window["hasFocus"]=true class="bodytext"></iframe>
        </div>
      <img src="images/window_resize.gif" id="windowResize" />
      </div>

      Der Aufruf zu diesem DIV sieht immer so aus:
      <td style="border:1px solid #010101;" width="159"><p class="tablebodytext"><strong class="blau-fett"><a id="h6596" class="popuponhovertemplate" title="AV" href="6224.htm" target="_self">AV</a></strong></p>

      Der Aufruf selbst wird über die class "popuponhovertemplate gesteuert. Aus diesem Tag heraus benötige ich jetzt aber das Attribut href, um es an den iframe als src zu übergeben.
      Mein letzter Versuch mit src="javascript:this.top.location.parent.href" schlug auch fehl, weil es "Null oder kein Objekt" ist. Kann mir jemand sagen, wie die src lauten muß?
      Gruß
      Heike

      1. Du musst also zuerst mit "top" auf das übergeordnete Dokument und dort - in welcher Form auch immer (getElementsByTagName() ist z.B. eine Möglichkeit) - das iframe-Element suchen und dessen src-Attribut ändern.

        Aber muß ich denn nicht genau umgekehrt vorgehen? Ich BIN ja schon in iframe und will den href "von oben" auslesen?!

        Darum musst du auch zuerst mit "top" nach in das umgebende Dokument und von dort wieder "abwärts" bis zum iframe-Element.

        Mein letzter Versuch mit src="javascript:this.top.location.parent.href" schlug auch fehl, weil es "Null oder kein Objekt" ist. Kann mir jemand sagen, wie die src lauten muß?

        Wie schon gesagt: zuerst "top" - this erzeugt eine Referenz auf das derzeige Element und davon auszugehen bringt dir nichts.

        Lies den von mir verlinkten Artikel.

        1. Ich habs jetzt mit src="javascript:top.document.links[6].className('popuponhovertemplate').href" versucht, NACHDEM ich den Artikel gelesen hatte, aber ich erhalte immer noch eine Fehlermeldung: Das Objekt unterstützt die Aktion nicht.
          Was mache ich noch falsch?

          Du musst also zuerst mit "top" auf das übergeordnete Dokument und dort - in welcher Form auch immer (getElementsByTagName() ist z.B. eine Möglichkeit) - das iframe-Element suchen und dessen src-Attribut ändern.

          Aber muß ich denn nicht genau umgekehrt vorgehen? Ich BIN ja schon in iframe und will den href "von oben" auslesen?!

          Darum musst du auch zuerst mit "top" nach in das umgebende Dokument und von dort wieder "abwärts" bis zum iframe-Element.

          Mein letzter Versuch mit src="javascript:this.top.location.parent.href" schlug auch fehl, weil es "Null oder kein Objekt" ist. Kann mir jemand sagen, wie die src lauten muß?

          Wie schon gesagt: zuerst "top" - this erzeugt eine Referenz auf das derzeige Element und davon auszugehen bringt dir nichts.

          Lies den von mir verlinkten Artikel.

          1. Ich habs jetzt mit src="javascript:top.document.links[6].className('popuponhovertemplate').href" versucht, NACHDEM ich den Artikel gelesen hatte, aber ich erhalte immer noch eine Fehlermeldung: Das Objekt unterstützt die Aktion nicht.
            Was mache ich noch falsch?

            Was hast du gegen das target?

            Struppi.

            1. Soweit mir bekannt ist, wird das Attribut target im TAG A gesetzt, nicht im IFRAME TAG. Dort benötige ich aber eine Referenz zum Aufrufen des HREF aus dem übergeordneten A TAG.
              Oder irre ich mich, was TARGET angeht?

              Ich habs jetzt mit src="javascript:top.document.links[6].className('popuponhovertemplate').href" versucht, NACHDEM ich den Artikel gelesen hatte, aber ich erhalte immer noch eine Fehlermeldung: Das Objekt unterstützt die Aktion nicht.
              Was mache ich noch falsch?

              Was hast du gegen das target?

              Struppi.

              1. Soweit mir bekannt ist, wird das Attribut target im TAG A gesetzt, nicht im IFRAME TAG. Dort benötige ich aber eine Referenz zum Aufrufen des HREF aus dem übergeordneten A TAG.

                Aus deinen Schilderungen geht das so nicht hervor, du hast davon gesprochen dass du ein iframe "ansteuern" willst. Mit ist nicht klar, was du mit ansteuern meinst.

                Struppi.

                1. Geh doch bitte nach oben in meine ersten eMails. Da versuche ich, den Workflow zu skizzieren. Danke.

                  Soweit mir bekannt ist, wird das Attribut target im TAG A gesetzt, nicht im IFRAME TAG. Dort benötige ich aber eine Referenz zum Aufrufen des HREF aus dem übergeordneten A TAG.

                  Aus deinen Schilderungen geht das so nicht hervor, du hast davon gesprochen dass du ein iframe "ansteuern" willst. Mit ist nicht klar, was du mit ansteuern meinst.

                  Struppi.

                  1. Hallo,

                    Geh doch bitte nach oben in meine ersten eMails. Da versuche ich, den Workflow zu skizzieren. Danke.

                    gescheiterte Versuche!

                    Was ist die auslösende Aktion?
                    Was möchtest Du bewirken?

                    Das kann ich Deinen Ausführungen nicht entnehmen.

                    Ich sehe den Versuch, einem iframe per Javascript den Wert des src-Attributes zu steuern.

                    Freundliche Grüße

                    Vinzenz

                    1. Ich sehe den Versuch, einem iframe per Javascript den Wert des src-Attributes zu steuern.

                      Und das von "innen" - also aus dem Dokument, welches im Iframe eingebunden ist - ja, das habe ich auch geglaubt.

                      1. Wenn ich zu verwirrend war, versuche ich es nochmals zu beschreiben: Ich habe eine Doku, in die ich Begriffserklärungen über kleine Fenster einblenden will. Das funktioniert soweit ganz gut. Aber ich muß, um es in meiner Autoren-Software automatisieren zu können, diese DIVs dynamisch öffnen und füllen lassen. Ich habe also nur ein DIV-Fenster, das so aussieht:

                        <div id="window" onclick=window["hasFocus"]=true>
                        <div id="windowTop">
                            <div id="windowTopContent" onclick=window["hasFocus"]=true ></div>
                        <img src="images/window_min.jpg" id="windowMin" />
                            <img src="images/window_max.jpg" id="windowMax" />
                            <img src="images/window_close.jpg" id="windowClose" />
                        </div>
                        <div id="windowBottom" onclick=window["hasFocus"]=true><div id="windowBottomContent">&nbsp;</div></div>
                        <div id="windowContent" style="overflow:auto">
                          <iframe onclick="if (window.parent && window.parent.autoIframe) {window.parent.autoIframe('iframe');}" height="900px" width="900px" src="javascript:this.top.location.parent.href" value="this.top.location.parent.href" align="top" frameborder="0" marginwidth="5px" marginheight="5px" onclick=window["hasFocus"]=true class="bodytext"></iframe>
                          </div>
                        <img src="images/window_resize.gif" id="windowResize" />
                        </div>

                        Der Aufruf zu diesem DIV sieht immer so aus:
                        <td style="border:1px solid #010101;" width="159"><p class="tablebodytext"><strong class="blau-fett"><a id="h6596" class="popuponhovertemplate" title="AV" href="6224.htm" target="_self">AV</a></strong></p>

                        Der Aufruf selbst wird über die class "popuponhovertemplate gesteuert. Aus diesem Tag heraus benötige ich jetzt aber das Attribut href, um es an den iframe als src zu übergeben.
                        War ich jetzt klarer?

                        Gruß
                        Heike

                        Ich sehe den Versuch, einem iframe per Javascript den Wert des src-Attributes zu steuern.

                        Und das von "innen" - also aus dem Dokument, welches im Iframe eingebunden ist - ja, das habe ich auch geglaubt.

                        1. War ich jetzt klarer?

                          Nein, lies bitte mein Posting nochmal. Beschreibe dein Problem OMA-tauglich ohne irgendwelche Fachbegriffe zu verwenden, die du offenbar nicht richtig zu verwenden weißt.

                          1. Das ich mich offenbar nicht verständlich machen kann, ist die eine Sache. Aber wer hat Dir die Allmacht gegeben, deshalb beleidigend zu werden?

                            War ich jetzt klarer?

                            Nein, lies bitte mein Posting nochmal. Beschreibe dein Problem OMA-tauglich ohne irgendwelche Fachbegriffe zu verwenden, die du offenbar nicht richtig zu verwenden weißt.

                            1. Das ich mich offenbar nicht verständlich machen kann, ist die eine Sache. Aber wer hat Dir die Allmacht gegeben, deshalb beleidigend zu werden?

                              [...] irgendwelche Fachbegriffe zu verwenden, die du offenbar nicht richtig zu verwenden weißt.

                              Das war keine Beleidigung sondern eine objektive Faktenfeststellung.

                              Ich fühle mich nicht im Stande dich zu verstehen, dein Buzzword-Bingo darfst du gerne alleine Weiterspielen. Auch nach mehrmaligem Lesen verstehe ich einfach nicht, was du willst. Wohl verstehe ich, was du allgemein versuchst zu erreichen - aber warum dafür das Target-Attribut nicht ausreichen soll, verstehe ich immer noch nicht. Nach den Ergänzungen von Vinzenz tendiere ich dazu, dass das der richtige Weg sein wird.

                        2. Hallo,

                          Wenn ich zu verwirrend war, versuche ich es nochmals zu beschreiben: Ich habe eine Doku, in die ich Begriffserklärungen über kleine Fenster einblenden will.

                          Warum Du dazu unbedingt einen iframe verwenden willst, das ist mir schleierhaft.
                          Warum Du, wenn Du schon einen iframe verwenden willst, das target-Attribut von a nicht nutzen willst, ist mir noch schleierhafter.

                          Achso: Du hast übrigens vergessen, Deinem iframe einen Namen zu geben. Hole das bitte nach.

                          Freundliche Grüße

                          Vinzenz

                  2. Geh doch bitte nach oben in meine ersten eMails. Da versuche ich, den Workflow zu skizzieren. Danke.

                    Geh' bitte nochmal gedanklich an den Anfang zurück - weder ich noch Struppi scheinen richtig verstanden zu haben, was du eigentlich willst.

                    Versuche bei der Beschreibung auf Fachausdrücke zu verzichten - du scheinst deren Bedeutung nicht eindeutig genug zu kennen, um damit deine Beschreibung verständlicher zu machen.

                    Allein der erste Satz "ich habe einen Link, der einen iframe über DIV-Container aufruft." ist dermaßen verwirrend, dass man nicht versteht, was gemeint ist.

                    Bitte lies dir die Tipps für Fragende durch, ansonsten wirst du wohlkaum eine vernünftige Antwort, nebst der gegebenen, erhalten.

                  3. Geh doch bitte nach oben in meine ersten eMails. Da versuche ich, den Workflow zu skizzieren. Danke.

                    Wie gesagt, ich verstehe das nicht, deshalb habe ich dich schon zweimal gefragt was du meinst. Ich möchte aber auch jetzt nicht zum fünften Mal deinen Text lesen, in der wagen Hoffnung ihn etwas besser zu verstehen.

                    Warum willst du mir nicht sagen, was du mit ansteuern meinst?

                    Struppi.

      2. Der Aufruf selbst wird über die class "popuponhovertemplate gesteuert. Aus diesem Tag heraus benötige ich jetzt aber das Attribut href, um es an den iframe als src zu übergeben.

        Das geschieht üblicherweise mit dem target Attribut, da brauchst du kein JS für.

        Struppi.

        1. Der Aufruf selbst wird über die class "popuponhovertemplate gesteuert. Aus diesem Tag heraus benötige ich jetzt aber das Attribut href, um es an den iframe als src zu übergeben.

          Das geschieht üblicherweise mit dem target Attribut, da brauchst du kein JS für.

          Struppi.

          Ich kann mit dem target nicht das iframe meines DIVs ansteuern.
          Gruß
          Heike

          1. Ich kann mit dem target nicht das iframe meines DIVs ansteuern.

            Wenn du unter "ansteuern" das aufrufen eines Links meinst, dann ist deine Antwort falsch. Genau dafür ist das attribut target gedacht.

            Struppi.

        2. Das geschieht üblicherweise mit dem target Attribut, da brauchst du kein JS für.

          Punkt für dich, so weit hab ich nicht gedacht.

  2. Hallo,

    Hallo,

    ich habe einen Link, der einen iframe über DIV-Container aufruft.

    <td style="border:1px solid #010101;" width="159"><p class="tablebodytext"><strong class="blau-fett"><a id="h6594" class="popuponhovertemplate" title="AV" href="6224.htm">AV</a></strong></p>

    Hier ist der einzige Link in Deinem gezeigten Code. Wenn Du haben möchtest, dass 6224.htm im eingebetteten Frame angezeigt werden soll, dann verwendest Du ganz normal, wie von Struppi bereits gesagt, das target-Attribut von a.

    Wenn dies nicht der Link ist, ja wo ist er dann.

    <div id="window" onclick=window["hasFocus"]=true>

    Bist Du Dir sicher, dass Du den Wert des onclick-Handlers nicht in Anführungszeichen setzen willst? Das passiert noch mehrfach ...

    [...]

    <div id="windowContent" style="overflow:auto">
      <iframe onclick="if (window.parent && window.parent.autoIframe) {window.parent.autoIframe('iframe');}" height="900px" width="900px" src="javascript:window.parent.href" value="this.parent.href" align="top" frameborder="0" marginwidth="5px" marginheight="5px" onclick=window["hasFocus"]=true class="bodytext"></iframe>

    Warum stattest Du den iframe mit einem value-Attribut aus? Was soll das?
    Was möchtest Du mit dem Javascript-Code im src-Attribut bewirken?

    Übrigens sind die Werte der Attribute height, width, marginwidth und marginheight allesamt ungültig. Hier hat die Zeichenfolge "px" nichts verloren.

    Warum verwendest Du einen solchen Mix aus ungültigen Attributen, veralteten Attributen, Inline-CSS und Inline-Javascript? Warum packst Du das ganze nochmals in eine Tabellenzelle? Ist der Iframe überhaupt erforderlich?

    Willst Du Dir das Leben unbedingt besonders schwer machen?

    Fragende Grüße

    Vinzenz