Home » Html » get parent.location.url – iframe – from child to parent

get parent.location.url – iframe – from child to parent

Posted by: admin November 29, 2017 Leave a comment

Questions:

I got a page that is displayed within an iframe.

I need to get the parent.location.url with js from that page (child page).

Both sites are in different domains.

I’m trying:

alert(parent.location.url)

But I get this error:

Permission denied for http://parentdomain to get property Location.URL from http://childdomain.

???? Is it possible?

Answers:

try this:

var referrer = document.referrer;
alert(referrer);

Questions:
Answers:

What you’re trying to do isn’t possible per se. Unless you have control over the parent page’s calling of the child page. If you do, then you can call the child page with a get statement in the URL of the parent page. So if you parent page is http://parentpage.com then here’s how you should call the iFrame.

<iframe src='http://childpage.com/?parent=http://parentpage.com' />

Then all you have to do in the child page to get the reference is get the string with

window.location.search //not sure of browser compatibility with this

and extract the parent page’s URL by grabbing it out of that string. I’d give more details, but I’m not even sure about the first question I had.

Questions:
Answers:

Have you tried something like:

alert(window.top.location.href);

Questions:
Answers:

It will only work if the parent page and the iframe are on the same domain. If they are not on the same domain you can try passing the location through the src, like Madison Williams suggested.

That is probably why you are getting “Permission denied…”

Questions:
Answers:

You’ll be able to find it like this, and all browsers should be able to support it:

query = window.parent.location.search.substring(1);

You shouldn’t get permission errors with this, but I may be wrong.

Questions:
Answers:

Try:

var pathname = window.parent.location.href

Questions:
Answers:

Use postMessage to pass data back and forth between the windows. It’s a little klunky, but required when having windows communicate across origins.