How to access the content of an iframe with jQuery? How to access the content of an iframe with jQuery? jquery jquery

How to access the content of an iframe with jQuery?


You have to use the contents() method:

$("#myiframe").contents().find("#myContent")

Source: http://simple.procoding.net/2008/03/21/how-to-access-iframe-in-jquery/

API Doc: https://api.jquery.com/contents/


<html><head><title></title><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script><script type="text/javascript">$(function() {    //here you have the control over the body of the iframe document    var iBody = $("#iView").contents().find("body");    //here you have the control over any element (#myContent)    var myContent = iBody.find("#myContent");});</script></head><body>  <iframe src="mifile.html" id="iView" style="width:200px;height:70px;border:dotted 1px red" frameborder="0"></iframe></body></html>


If iframe's source is an external domain, browsers will hide the iframe contents (Same Origin Policy).A workaround is saving the external contents in a file, for example (in PHP):

<?php    $contents = file_get_contents($external_url);    $res = file_put_contents($filename, $contents);?>

then, get the new file content (string) and parse it to html, for example (in jquery):

$.get(file_url, function(string){    var html = $.parseHTML(string);    var contents = $(html).contents();},'html');