Я обнаружил, что принятого ответа недостаточно, поскольку X-FRAME-OPTIONS: Allow-From не поддерживается в safari или chrome .Вместо этого пошли с другим подходом, который можно найти в презентации , которую дал Бен Винегар из Disqus.Идея состоит в том, чтобы добавить прослушиватель событий в родительское окно, а затем внутри iframe использовать window.postMessage, чтобы отправить событие родителю, сказав ему сделать что-то (изменить размер iframe).
Так что вродительский документ, добавьте прослушиватель событий:
window.addEventListener('message', function(e) {
var $iframe = jQuery("#myIframe");
var eventName = e.data[0];
var data = e.data[1];
switch(eventName) {
case 'setHeight':
$iframe.height(data);
break;
}
}, false);
И внутри iframe напишите функцию для отправки сообщения:
function resize() {
var height = document.getElementsByTagName("html")[0].scrollHeight;
window.parent.postMessage(["setHeight", height], "*");
}
Наконец, внутри iframe добавьте onLoad втег body для запуска функции изменения размера:
<body onLoad="resize();">