Yes, accessing parent page's URL is not allowed if the iframe and the main page are not in the same (sub)domain. However, if you just need the URL of the main page (i.e. the browser URL), you can try this: var url = (window. location !=
The Window. parent property is a reference to the parent of the current window or subframe. If a window does not have a parent, its parent property is a reference to itself.
http://reference.sitepoint.com/html/a/target
"_top"
loads content in the top-level frameset (in effect, the whole browser window), no matter how many nested levels down the current frame is located
<a href="page" target="_top">Replace parent url!</a>
Change your link from this:
<a href="link-here.html">
To this:
<a href="#" onclick="top.window.location.href='yourURL';">
If you want, you could just put the onclick
handler on the image instead and get rid of the anchor.
Note that this is not the correct place to have javascript (handlers should be bound from a .js file, not in markup), but i get the feeling you are looking for a surgical answer and don't care much for best practices.
edit: as Victor Nicollet pointed out, this will throw a security exception if your iframe and parent page do not share domains. see http://en.wikipedia.org/wiki/Same_origin_policy
In my case I used the following
if (window.self !== window.top) { // checking if it is an iframe
window.parent.location.href = websiteUrl;
} else {
window.location.href = websiteUrl;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With