получить parent.location.url - iframe - от дочернего элемента к родительскому - PullRequest
31 голосов
/ 11 декабря 2010

У меня есть страница, которая отображается внутри iframe.

Мне нужно получить parent.location.url с js с этой страницы (дочерняя страница).

Оба сайта находятся вразные домены.

Я пытаюсь:

alert (parent.location.url)

Но я получаю эту ошибку:

В доступе отказано http://parentdomain чтобы получить свойство Location.URL от http://childdomain.

????Возможно ли это?

Ответы [ 7 ]

72 голосов
/ 30 августа 2012

попробуйте это:

var referrer = document.referrer;
alert(referrer);
7 голосов
/ 11 декабря 2010

То, что вы пытаетесь сделать, само по себе невозможно. Если у вас нет контроля над вызовом родительской страницы дочерней страницы. Если вы это сделаете, то вы можете вызвать дочернюю страницу с помощью инструкции get в URL родительской страницы. Так что, если ваша родительская страница http://parentpage.com, вот как вы должны вызывать iFrame.

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

Тогда все, что вам нужно сделать на дочерней странице, чтобы получить ссылку, это получить строку с

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

и извлеките URL родительской страницы, вытащив его из этой строки. Я бы дал больше подробностей, но я даже не уверен насчет первого вопроса, который у меня был.

4 голосов
/ 11 декабря 2010

Вы пробовали что-то вроде:

alert(window.top.location.href);
2 голосов
/ 16 октября 2012

Вы сможете найти его следующим образом, и все браузеры должны поддерживать его:

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

Вы не должны получать ошибки разрешения с этим, но я могу ошибаться.

2 голосов
/ 11 декабря 2010

Будет работать только , если родительская страница и iframe находятся в одном домене. Если они не находятся в одном домене, вы можете попробовать передать местоположение через src , как предложила Мэдисон Уильямс.

Возможно, поэтому вы получаете "Отказано в доступе ..."

1 голос
/ 30 июня 2015

Используйте postMessage для передачи данных назад и вперед между окнами.Это немного громоздко, но требуется, когда окна взаимодействуют между источниками.

1 голос
/ 19 апреля 2011

Попробуйте:

var pathname = window.parent.location.href
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...