开发者

execute javascript function in a another iframe when parent is from different domain

The page A.com has 2 iframes B.com/page开发者_开发问答1 and B.com/page2. This is the code of A.com:

<html><body>
    <iframe src="b.com/page1" name="iframe1" id="iframe1">
    <iframe src="b.com/page2">
</body></html>

I want to execute js function on B.com/page1 from B.com/page2. Both examples below works well when the parent is from the same domain but not in cross domain scenario:

parent.window.frames['iframe1'].SomeFunction(args);

or

parent.document.getElementById('iframe1').contentWindow.SomeFunction(args);

Is there any way to do it?


Instead of

parent.window.frames['iframe1'].SomeFunction(args);

use

parent.frames['iframe1'].SomeFunction(args);

You are allowed to traverse the frames collection of any window that you can reference, but in this case you are trying to traverse the recursive window property of parent (which IS the window). This is not allowed.


No, the browser doesn't allow interacts between iframes that are not on the same domain at all.


As Aaron have already told you, browsers don't allow this, but there are ways around it. You'll need to create a small hack. Eugene Gladyshev has a post on it on his blog.


As Aaron states, it is not allowed to interact between iframes, but you should take a look at easyXDM, it helps with cross domain communication in javascript:

http://easyxdm.net/wp/

Here is the example you might be looking for:

http://easyxdm.net/wp/2010/03/17/sending-and-receiving-messages/

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜