开发者

Call javascript method defined in parent from iframe

开发者 https://www.devze.com 2023-01-17 18:29 出处:网络
After some research (even at stackoverflow) I still can\'t figure out how to do this. parent.method() won\'t do the trick, nor some other solutions I\'ve tried.

After some research (even at stackoverflow) I still can't figure out how to do this. parent.method() won't do the trick, nor some other solutions I've tried.

Situation: I have a index.html on the client side (mobile phone in this case) which has an iframe loading server-side page. What I need to do is call a javascript method defined in the index.html (client side) from the iframe content (server-side).

As an example (I'm not using android in the qu开发者_JS百科estion described above), Android apps have addJavascriptInterface which, when defined, allows one to call methods defined client-side from server-side pages just invoking window.CustomObject.MethodToCall().

Any hint?

Thanks!


window.top.foo 

for the top level window

window.parent.foo

for the direct parent


I realize I am only a year late to this party but there was no real answer.

So, in order to do this both files must be on the same domain. Since you have the index.html on the phones localhost and load a page on your site it will not work (locahost to example.com). You could load the index.html off your site as well and that would fix this problem (example.com to example.com). Then you could reference the parent frame in the normal window.top.function.


In certain situation there could be a neccessity of calling a javascript function inside an iframe from the parent document, and vice versa ie; calling a javascript function in parent document from the iframe.

For example; the parent document have an iframe with id attribute ‘iFrameId‘, and the function ‘functionInIframe()‘ is defined in that iframe document. Following code can call that iframe function from the parent document itself.

document.getElementById('iFrameId').contentWindow.functionInIframe();

And following code can call the function defined in parent document(functionInParent()) from the iframe itself.

parent.functionInParent();

This way javascript can interact between parent document and iframe.

This is the original post.

0

精彩评论

暂无评论...
验证码 换一张
取 消