Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

jquery

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

like image 646
fgfgfgghjh Avatar asked Nov 09 '10 09:11

fgfgfgghjh


People also ask

Can iframe call function in parent?

You can call code of the parent window form child window. f you open window by using iframe, you can communicate from child window with the parent. <button onclick="onClick();">Call Parent Window Function</button>When you open Page1.

How do you call a parent page of an iframe function?

To call a parent window function, use “window. top”.

Can iframe use parent JavaScript?

The parent keyword can also be used to access global variables or invoke functions in the main document from the document inside the iframe, as the example below demonstrates. Note: These cross-document interactions are only possible if the documents have the same origin.

Can iframe access parent document?

It's still possible to access the parent from within a frame provided that the domains match. The variables parent and top can be overwritten (usually not intended). It's safer to use window.


3 Answers

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.

like image 106
Andy E Avatar answered Nov 01 '22 00:11

Andy E


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

It is necessary to loaded iframe ;)

like image 32
GigolNft Avatar answered Nov 01 '22 00:11

GigolNft


Do it like a pro:

$("#myFrame").prop('contentWindow').abc();
like image 24
MSS Avatar answered Oct 31 '22 23:10

MSS