Danke Danke:  0
Dislikes Dislikes:  0
Ergebnis 1 bis 3 von 3

Thema: Problem mit iFrames und JavaScript

  1. #1

    Registriert seit
    21.01.18
    Danke (erhalten)
    0
    Gefällt mir (erhalten)
    0

    Standard Problem mit iFrames und JavaScript

    Anzeige
    Hallo,
    ich habe ein Problem mit einem JS und stehe hier irgendwie auf dem Schlauch. Ich versuche das Problem mal etwas vereinfacht darzustellen.
    Im Firebug habe ich den folgenden Code
    HTML-Code:
    <html>
      <body>
          ......
          <iframe id="masterFrame">
            <html>
                <body>
                    <iframe id="slaveFrame">
                        <html>
                          <body>
                              <!-- SOME CODE -->
                              <div id="myDiv">
                                    <!--- SOME CODE -->
                              </div>
                          </body>
                        </html>
                    </iframe>
                </body>
            </html>
          </iframe>
          ......
      </body>
    </html>
    Ich möchte nun den DIV-Container aus dem iFrame "slaveFrame" mittels JS "herausheben", was mit folgendem JavaScript wunderbar funktioniert-

    HTML-Code:
    <html>
      <body>
          ......
          <iframe id="masterFrame">
            <html>
                <body>
                    <iframe id="slaveFrame">
                        <html>
                          <body>
                              <!-- SOME CODE -->
                              <div id="myDiv">
                                  <!--- SOME CODE -->
                                  <script>
                                     var myDiv = document.getElementById("myDiv");
                                     window.frameElement.parentNode.appendChild(myDiv);
                                  </script>
                              </div>
                          </body>
                        </html>
                    </iframe>
                </body>
            </html>
          </iframe>
          ......
      </body>
    </html>
    Das funktioniert auch problemlos, der Code sieht anschließend im Firebug wie folgt aus:

    HTML-Code:
    <html>
      <body>
          ......
          <iframe id="masterFrame">
            <html>
                <body>
                    <iframe id="slaveFrame">
                        <html>
                          <body>
                          </body>
                        </html>
                    </iframe>
                    <div id="myDiv">
                      <!--- SOME CODE -->
                      <script>
                          var myDiv = document.getElementById("myDiv");
                          window.frameElement.parentNode.appendChild(myDiv);
                       </script>
                     </div>
                </body>
            </html>
          </iframe>
          ......
      </body>
    </html>
    Mein Problem ist, ich will es noch einmal machen und aus dem masterFrame hängen und das will nicht klappen Also ein erneutes

    HTML-Code:
    window.frameElement.parentNode.appendChild(myDiv);
    funktioniert nicht. Wo liegt mein Denkfehler ?

    Danke

  2. #2
    Moderator
    Registriert seit
    30.06.08
    Danke (erhalten)
    32
    Gefällt mir (erhalten)
    841

    Standard

    Mein Problem ist, ich will es noch einmal machen und aus dem masterFrame hängen und das will nicht klappen Also ein erneutes
    Dem kann ich nicht ganz folgen - wo genau machst du das nochmal?
    Wenn ein Gesetz nicht gerecht ist, dann geht die Gerechtigkeit vor dem Gesetz!

    Habo Blog - http://blog.hackerboard.de/

  3. #3
    Avatar von BasicAvid
    Registriert seit
    17.03.04
    Danke (erhalten)
    3
    Gefällt mir (erhalten)
    10

    Standard

    Anzeige
    Zitat Zitat von Chromatin Beitrag anzeigen
    Dem kann ich nicht ganz folgen - wo genau machst du das nochmal?
    Ich glaube er möchte mit dem Div erst aus dem "slaveFrame" und dann auch noch aus dem "masterFrame" ausbrechen.


    main-page.html
    HTML-Code:
    <html>
        <head>
            <title>Test</title>
            <style>
                iframe {
                    border: none;
                    width: 80%;
                    height: 500px;
                }
            </style>
        </head>
        <body>
          <p>Outer Master</p>
          <iframe id="masterFrame" src="master-iframe.html">
            
          </iframe>
         </body>
    </html>
    master-iframe.html
    HTML-Code:
    <html>
        <head>
            <title>Master</title>
            <style>
                iframe {
                    border: none;
                    width: 100%;
                    height: 100%;
                }
            </style>
        </head>
        <body>
        <p>Outer Slave</p>
            <iframe id="slaveFrame" src="slave-iframe.html">
                
            </iframe>
            <script type="text/javascript">
                document.addEventListener("DOMSubtreeModified", function() {
                    var myDiv = document.getElementById("myDiv");
                    if (myDiv) {
                        window.frameElement.parentNode.appendChild(myDiv);
                    }
                }, false);
            </script>
        </body>
    </html>
    slave-iframe.html
    HTML-Code:
    <html>
        <head>
            <title>Slave</title>
            <style>
                iframe {
                    border: none;
                    width: 100%;
                    height: 100%;
                }
            </style>
        </head>
      <body>
        <p>Inner Slave</p>
          <!-- SOME CODE -->
          <div id="myDiv">
              <p>Ich will raus hier!</p>
              <script type="text/javascript">
                var myDiv = document.getElementById("myDiv");
                if (myDiv) {
                    window.frameElement.parentNode.appendChild(myDiv);
                }
              </script>
          </div>
      </body>
    </html>
    So sollte es funktionieren, Du brauchst im Master iFrame einen EventListener der auf Veränderungen im DOM lauscht. Dein Code funktioniert deshalb nicht, weil der Javascript Code-Block zwar mit verschoben wird, aber nicht mehr ausgeführt.
    Mfg Basic Avid
    - Use it or be used! -

  4. Gefällt mir Chromatin liked this post

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 21.08.13, 08:44
  2. [JAVASCRIPT] Problem bei Konvertieren in andere Basis
    Von Sleepprogger im Forum Code Kitchen
    Antworten: 2
    Letzter Beitrag: 07.12.12, 19:01
  3. problem mit javascript =(
    Von Hellforces im Forum (Web-) Design und webbasierte Sprachen
    Antworten: 2
    Letzter Beitrag: 16.04.09, 16:32
  4. Javascript Slideshow Problem
    Von elite-noob im Forum Code Kitchen
    Antworten: 0
    Letzter Beitrag: 01.12.08, 14:05
  5. mit link 2 iframes verändern
    Von freakazoid im Forum (Web-) Design und webbasierte Sprachen
    Antworten: 0
    Letzter Beitrag: 23.02.05, 15:55

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •