Чтение родительского местоположения из фрейма (разные домены) - PullRequest
3 голосов
/ 20 февраля 2011

Как iframe может прочитать URL своего родительского местоположения , если домены родительского окна и iframe различны?

Я знаю, что «общий» ответ на этот вопрос заключается в том, что из-за конфликта доменов браузеры не разрешают междоменный доступ. Таким образом, следующее не будет работать :

parent.location.href

Но, может быть, кто-то мог бы подумать из коробки здесь и предложить что-то похожее на Хакерский обмен документами ?

Ответы [ 2 ]

1 голос
/ 20 февраля 2011

Возможно, вы могли бы проверить document.referrer?Конечно, это будет работать только в том случае, если пользователь еще не нажал на ссылку внутри iframe.

0 голосов
/ 20 февраля 2011

Я понял !!

Мое решение следующее:

1. Используйте атрибут onload с рамкой

<iframe src="http://website.com/" onload="src+='#'+document.location"></iframe>

2. Мониторинг изменений хеша в кадре

var referrer = '?';
window.onhashchange = function() {
  var ref = document.location.hash;
  if(ref && ref.length > 1) {
    var t = ref.split('#');
    ref = t[1];
  }
  referrer = ref;
};

и "вуаля": -)

Кстати, вы найдете более подробную информацию о событии onhashchange .

...