CORS не позволяет вам этого делать, но вы можете использовать обмен сообщениями между документами для отправки строк между iframe и их родительскими окнами даже в разных доменах и использовать это для связи.
Большинство браузеров поддерживают это, хотя способ Internet Explorer отличается от другие '.
Предполагая, что вы хотите, чтобы iframe объявлял родительской странице его желаемую высоту, вы можете поместить это в свой код iframe (не проверено):
var message = {
width: desiredWidth,
height: desiredHeight
};
window.parent.postMessage(JSON.stringify(message),'*');
И это на вашей содержащей странице:
function onMessage (event) {
if (event.source != theIFrameElement.contentWindow) return;
var message = JSON.parse(event.data);
var desiredHeight = message.height;
var desiredWidth = message.width;
}
if (window.attachEvent)
window.attachEvent('onmessage', onMessage);
else if (window.addEventListener)
window.addEventListener('message', onMessage, false);
AttachEvent - для IE, а addEventListener - для всех остальных. Возможно, вы захотите проверить целевое происхождение в целях безопасности, но это общая идея.
РЕДАКТИРОВАТЬ: Поддержка браузером обмена сообщениями между документами (—fsb)
person
PaulG
schedule
23.06.2011