Веб-сайт iframe не расположен в том же домене, но оба являются моими, и я хотел бы общаться между iframe
и родительским сайтом. Возможно ли это?
В разных доменах невозможно вызвать методы или напрямую получить доступ к документу содержимого iframe.
Вы должны использовать кросс-документацию.
Например, в верхнем окне:
myIframe.contentWindow.postMessage('hello', '*');
и в iframe:
window.onmessage = function(e){
if (e.data == 'hello') {
alert('It works!');
}
};
Эта библиотека поддерживает HTML5 postMessage и устаревшие браузеры с изменением размера + хэш https://github.com/ternarylabs/porthole
Изменить: теперь в 2014 году использование IE6/7 довольно невелико, IE8 и, прежде всего, поддерживают postMessage
, поэтому я предлагаю просто использовать это.
https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage
Свойство window.top
должно быть в состоянии дать то, что вам нужно.
например.
alert(top.location.href)
вы можете использовать почтовый API (почтовый js/postal xframe/postal fedration)