- I have a page A containing 2 children iFrames called B and C.
- A and B are on different domains.
- On pressing a button in B I would like to change C's URL.
Based on the law III of Michael Mahemoff it should work, but 开发者_C百科in fact it doesn't (js security error).
Here is the JS code in B:
window.parent.frames['C'].location.href = "http://random.url";
This does not work because frame B cannot access the frames
collection in page A.
I cannot think of any workaround (other than setting document.domain
)
in case a page & frame are not on the same domain, you'll have to use postmessage, which is part of html5 and works in all modern browsers (including IE8).
if you need support for older browsers (specifally IE6/7), you could use the jQuery postmessage plugin (which transparently falls back to some nice hash-tag trickery for older browsers).
精彩评论