Reiner A.: Frameübergreifende änderung

Guten Abend zusammen.

Ich hab nen kleines Problem und hoffe jemmand kann mir dabei helfen. Also folgende Situation :

Ich möchte das die Seite die ich gebastelt hab, sich nicht neu läd sondern nur die Information die in meiner Tabelle stehen, nun könnte ich einfach ein IFrame in die Tabelle setzen und alles darüber laden jedoch möchte ich das nicht. Deshalb hab ich folgendes versucht, ich habe die Seite in ein Frameset gesetzt wobei die Seite selbst zu 100% und die 2te Seite versteckt geladen wird, ich hatte mir überlegt, das wenn ich nun auf einen Meiner Links klicke dann das Ziel im versteckten Frame geladen und die Daten in den Sichtbaren Frame geschoben werden sollen. Dieses wollte ich per Javascript ermöglichen. Das ganze sollte dan ungefähr so aussehen :

parent.frames[0].getelementbyname('fmain').innerHTML=document.getelementbyname('datadiv1').innerHTML

Diese Aktion wird vom versteckten Frame aus ausgeführt. Frame 0 ist der Sichtbare Frame wobei fmain ein Div ist in dem der Inhalt aus datadiv1 von dem unsichtbaren Frame eingefügt werden soll.

Jedoch passiert garnichts, ich bekomme auch keinen Fehler angezeigt und ich habe keine Ahnung warum.

Ich bedanke mich für Konstruktive Antworten im vorraus.

  1. Hm... Es ist nicht ganz leicht zu verstehen, wass du genau willst. Ich vermute aber, das Problem lässt sich beheben, in dem du statt dem iframe einen DIV-Bereich verwendest, dessen Inhalt du änderst. Solltest du dass nicht wollen, müsstest du im iframe ständig eine weitere Datei geladen halten, deren Inhalt du dann veränderst. Dann müsste dein Code etwa so aussehen:

    parent.frames[0].getelementbyname('fmain').getElementByName('einElement').innerHTML=document.getelementbyname('datadiv1').innerHTML

    Wobei 'einElement' natürlich der Name des Elementes wäre, dass du austauschen würdest. Wenn du aber das innere HTML eines iframes änderst, änderst du tatsächlich nur den Text, den ein Webbrowser anzeigt, der iframes nicht unterstützt.

    1. Erstma Danke für die Antwort.

      Hm... Es ist nicht ganz leicht zu verstehen, wass du genau willst. Ich vermute aber, das Problem lässt sich beheben, in dem du statt dem iframe einen DIV-Bereich verwendest, dessen Inhalt du änderst.

      Ich habe ja ein Div und will auch kein IFrame verwenden.

      Solltest du dass nicht wollen, müsstest du im iframe ständig eine weitere Datei geladen halten, deren Inhalt du dann veränderst. Dann müsste dein Code etwa so aussehen:

      parent.frames[0].getelementbyname('fmain').getElementByName('einElement').innerHTML=document.getelementbyname('datadiv1').innerHTML

      Wobei 'einElement' natürlich der Name des Elementes wäre, dass du austauschen würdest. Wenn du aber das innere HTML eines iframes änderst, änderst du tatsächlich nur den Text, den ein Webbrowser anzeigt, der iframes nicht unterstützt.

      Ich hab zwar einigermaßen verstanden worauf du hinauswolltest, jedoch will ich ja kein IFrame verwenden. Ich will lediglich in das Div von Frame[0] den Text aus dem div von Frame[1] schieben, was aber einfach nicht funktionieren will. Ich hoffe das ist verständlicher.

      1. Mir ist aufgefallen das der aufruf Verschachtelt ist und ich jedesmal ' benutzt habe, weshalb das ganze garnicht funktionieren kann. Nachdem ich das geändert hab gab es allerdings immernoch Probleme. Der IE sagt immer Das Objekt unterstützt die Eigenschaft oderMethode nicht. Scheinbar hat er Probleme mit dem innerHTML ? Hat jemmand ne Idee warum ?

  2. Hi,

    parent.frames[0].getelementbyname('fmain').innerHTML=document.getelementbyname('datadiv1').innerHTML

    Beim ersten Fehler das Lesen gestoppt: getElementsByName! Beachte den Plural und beschäftige Dich mit der daraus resultierenden Syntax!

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Hi,

      Hi

      parent.frames[0].getelementbyname('fmain').innerHTML=document.getelementbyname('datadiv1').innerHTML

      Beim ersten Fehler das Lesen gestoppt: getElementsByName! Beachte den Plural und beschäftige Dich mit der daraus resultierenden Syntax!

      Schön das du mir das sagts, aber ich hab nicht viel Ahnung von JS, könntest du das bitte etwas aüsführlicher erläutern ?

      1. Hi,

        Schön das du mir das sagts, aber ich hab nicht viel Ahnung von JS,

        Dann solltest Du (erst recht) auf Mozilla entwickeln! Die JavaScript-Console zeigt Dir deine Fehler (i.d.R.) an.

        könntest du das bitte etwas aüsführlicher erläutern ?

        Du hast kein JS verwendet, sondern eine Eigenerfindung (getelementbyname). ;-) Nutze die selfHTML-Quickbar -> JavaScript -> getElementsByName(). Schau Dir dort Syntax und Erläuterung an.

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. Hi,

          Schön das du mir das sagts, aber ich hab nicht viel Ahnung von JS,

          Dann solltest Du (erst recht) auf Mozilla entwickeln! Die JavaScript-Console zeigt Dir deine Fehler (i.d.R.) an.

          könntest du das bitte etwas aüsführlicher erläutern ?

          Du hast kein JS verwendet, sondern eine Eigenerfindung (getelementbyname). ;-) Nutze die selfHTML-Quickbar -> JavaScript -> getElementsByName(). Schau Dir dort Syntax und Erläuterung an.

          Alles klar, warum hast du mir nich gleich gesagt das ich das s vergessen hab.

          1. So habe das mit dem vergessenen s nachgetragen und jetzt funktionierts auch.

            1. Hi,

              So habe das mit dem vergessenen s nachgetragen und jetzt funktionierts auch.

              Das verwundert mich - es dürfte nicht funktionieren, indem man nur das "s" ergänzt. Korrekterweise mußt Du noch die laufende Nummer des gewünschten Elementes hinzufügen um aus den vielen möglichen Elementen eines auszusuchen (wie gesagt: Plural)!

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
              1. Ja, ist klar aber das s war der Springende Punkt ich hatte schon alles mögliche probiert, auch wegen der Nummerierung aber das ging irgendwie alles nicht und alles nur weil ich das s vergessen hatte. Nun hatte ich bei mir das s hinzugefügt noch nen bischen Probiert un schon funktionierts auch.

          2. Hi,

            Alles klar, warum hast du mir nich gleich gesagt das ich das s vergessen hab.

            Es war nicht nur das "s". Wg. des Plural ergibt sich generell eine andere Syntax.

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!