fgfgfgghjh
fgfgfgghjh

Reputation: 747

How to call a function in an iframe from the parent page?

How to call a function in an iframe from the parent page?

Upvotes: 11

Views: 30642

Answers (5)

MSS
MSS

Reputation: 3860

Do it like a pro:

$("#myFrame").prop('contentWindow').abc();

Upvotes: 3

Gigoland
Gigoland

Reputation: 1453

$("iframe").each(function()
{
    $(this).one("load", function()
    {
        $(this)[0].contentWindow.myFunction();
    });
});

It is necessary to loaded iframe ;)

Upvotes: 3

Andy E
Andy E

Reputation: 344575

As long as the framed page is on the same domain (or on a sub-domain, and you're setting document.domain), you need to access the contentWindow property of the frame element. For example:

$("#myFrame")[0].contentWindow.myFunction();

// or, if jQuery hasn't made you lazy 
document.getElementById("myFrame").contentWindow.myFunction();

Most browsers also support contentDocument, but Internet Explorer doesn't. If your framed page is on a different domain then you'll get an Access Denied error.

Upvotes: 19

Alex Rashkov
Alex Rashkov

Reputation: 10015

You can select the iFrame using its id

document.getElementById(iframeId).contentDocument

but I am not sure you can access its JavaScript, especially if child iFrame is from different domain

Upvotes: 0

Maurizio Cucchiara
Maurizio Cucchiara

Reputation: 895

did you try?

top.frames['my_frame'].myFunc();

Upvotes: 0

Related Questions