Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to interact with the content of an iframe using js or jQuery

Tags:

jquery

iframe

index.html with this code

<iframe src="other.html" width="100%" height="600px"></iframe>

<input type="button" id="btnOutside" value="Click me"/>

In the other.html I have this code:

<input type="button" id="btnInside" value="Other Click"/>
<script type="text/javascript">
$(document).ready(function() {
    $("#btnInside").click(function () {
        alert('inside');
    });
});
</script>

I am trying to make that the outside button trigger the inside button like this in the index.html

<script type="text/javascript">
$(document).ready(function() {
    $("#btnOutside").click(function () {
        $("#btnInside").click();
    });
});
</script>

But is is not working. What can I do??

like image 888
kilkadg Avatar asked Dec 27 '22 08:12

kilkadg


1 Answers

Different iframes have different contexts and documents: when you invoke $('#btnInside'), jQuery is executing in the host iframe and looking in that document, so it can't find it. If the nested iframe is on the same server though, you can tunnel through to its document from the host document:

$(document).ready(function() {
    $("#btnOutside").click(function () {
        $('iframe[src="other.html"]').contents().find("#btnInside").click();
    });
});
like image 104
Barney Avatar answered Jan 31 '23 02:01

Barney