私は、X-FRAME-OPTIONS:Allow-a はサファリまたはChromeでサポートされていません。 DisqusのBen Vinegarが提示したプレゼンテーションにある、別のアプローチを行った。アイデアは、親ウィンドウにイベントリスナーを追加し、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();">