2016-06-08 12 views
-1

Ich brauche den Stil meines Rahmenelementes zu ändern, jedoch hat die iframe keine ID oder Klasse oder NamenJavascript - Elemente Zugang iframe

<div id="A"> 
     <iframe src="iframe-left.html"> 
      <div class="login" style="display : none;"> </div> 
     </iframe> 
</div> 
<div id="B"> 
    <iframe src="iframe-right.html"> 
     <button onclick = "execute()">Submit</button> 
    </iframe> 
</div> 

function execute() 
{ 
    parent.document.getElementsByTagName("iframe").contentDocument.querySelector(".login").style.display = 'block'; 
} 

Was ist der Fehler in der JavaScript-Funktion?

+0

Du weißt, dass mit Ihrer makup wie es ist, machen die Elemente innerhalb der Iframe-Tags nur dann, wenn der Browser des Benutzers nicht die iframes machen kann (was nie ist). – zer00ne

Antwort

1

Hallo Ich glaube, Sie haben das erste Element der Knotenliste zu bekommen, sehen http://www.w3schools.com/jsref/met_document_getelementsbytagname.asp

Mit anderen Worten: Sie tun müssen:

parent.document.getElementsByTagName("iframe")[0].contentDocument.querySelector(".login").style.display = 'none'; 
+0

Funktioniert! Vielen Dank: D – Zero4

+0

Mit Vergnügen !! –

+0

Wie soll 'parent.document' funktionieren? Die Funktion wird von der übergeordneten Seite und nicht von der untergeordneten Seite aufgerufen. Ich habe es getestet, siehe Demo. – zer00ne

-1

warum Sie jQuery nicht verwenden? - umfassen jquery Skripte und dann und dieses Recht nach

<script> 
$('iframe').hide(); 
</script> 
+0

Können wir das nicht durch JS erreichen? Der ganze Code ist hier in JS geschrieben, das ist der Grund für JS. Wenn es fehlschlägt, würde ich jQuery versuchen – Zero4

Verwandte Themen