This tutorial shows you how to get and change the content of an IFrame, by accessing a variable and a function defined in it, through a button and a Javascript script created in another IFrame.
It is important to know that the pages that are included in the IFrames must be on the same server as the main page, or else it will not work for security reasons.
Going straight to the point, to get and change the content of an IFrame through another IFrame, you use their common base, the Main Page, also named "Parent", using the parent property and the name of the IFrame that will be accessed (name that is specified in the "name" attribute in the <iframe> tag).
var var_name = parent.iframe_name.element;- element - can be an object, a variable, or function in the "iframe_name".
<html> <head> <title>Page for IFrame 1</title> <script type="text/javascript"><!-- // Stores a value in the variable "var_ifr1", that will be accessed in the second iframe var var_ifr1 = '<b>Value of the variable from iframe 1</b>'; // Function that replace the content of the DIV "div_ifr1" with the value of its parameter // It will be called from iframe 2 function f_ifr1(txt) { document.getElementById('div_ifr1').innerHTML = txt; } //--></script> </head> <body> IFRAME 1 Content in BODY <div id="div_ifr1">Div content of the iframe 1</div> </body> </html>
<html> <head></head> <title>Page for IFrame 2</title> <body> IFRAME 2<br> <script type="text/javascript"><!-- function f_ifr2(txt) { // get the BODY content of the iframe 1, "ifr1" var c_ifr1 = parent.ifr1.document.body.innerHTML; alert(c_ifr1); // Displays the content in an alert window // gets the value of the variable "var_ifr1", defined in the iframe 1, "ifr1" var from_ifr1 = parent.ifr1.var_ifr1; // Displays in a tag in this iframe the value of the variable defined in iframe 1 document.getElementById('d_ifr2').innerHTML = from_ifr1; // Calls the function "f_ifr1", defined in iframe 1 parent.ifr1.f_ifr1(txt); } //--></script> <div id="d_ifr2"> </div> <button onclick="f_ifr2('<b>The text changed from iframe 2</b>')">Action iframe</button> </body> </html>
<html> <head><title>Main Page</title></head> <body> <h3>Main Page</h3> <h4>First iframe</h4> <iframe src="ifr1.htm" id="ifr1" name="ifr1"></iframe> <br><h4>Second iframe</h4> <iframe src="ifr2.htm" id="ifr2" name="ifr2"></iframe> </body> </html>
<ul> <li>http://coursesweb.net/html/</li> <li>http://coursesweb.net/css/</li> </ul>
.some_class { display: list-item; }
var obj = { "courses": ["php", "javascript", "ajax"] }; var jsonstr = JSON.stringify(obj); alert(jsonstr); // {"courses":["php","javascript","ajax"]}
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>'; $dochtml = new DOMDocument(); $dochtml->loadHTML($strhtml); $elm = $dochtml->getElementById("dv1"); echo $elm->nodeValue; // CoursesWeb.net