Как общаться между iframe и родительским сайтом?



сайт в iframe не находится в том же домене, но оба мои, и я хотел бы общаться между iframe и родительский сайт. Возможно ли это?

618   3  

3 ответов:

в разных доменах невозможно вызвать методы или получить доступ к содержимому документа iframe напрямую.

вы должны использовать обмен сообщениями между документами.

например в верхнем окне:

 myIframe.contentWindow.postMessage('hello', '*');

и в iframe:

window.onmessage = function(e){
    if (e.data == 'hello') {
        alert('It works!');
    }
};

эта библиотека поддерживает HTML5 postMessage и устаревшие браузеры с resize+hash https://github.com/ternarylabs/porthole

Edit: теперь в 2014 году использование IE6 / 7 довольно низкое, IE8 и, прежде всего, поддержка postMessage поэтому я сейчас предлагаю просто использовать это.

https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage

the window.top собственность должны быть в состоянии дать то, что вам нужно.

например.

alert(top.location.href)

посмотреть http://cross-browser.com/talk/inter-frame_comm.html

Comments

    Ничего не найдено.