これに対するさまざまなソリューションを検討した結果、さまざまなユースケースを考慮して単純な jQuery プラグインを作成することになりました。ポータル ページでユーザーが生成した複数の iFrame をサポートするソリューションが必要だったため、サポートされているブラウザーのサイズが変更され、iFrame の後に読み込まれるホスト ページの JavaScript に対応できました。また、幅へのサイズ変更とコールバック関数のサポートを追加し、body.margin のオーバーライドを可能にしました。おそらくこれをゼロに設定する必要があるからです。
https://github.com/davidjbradshaw/iframe-resizer
ホスト ページは jQuery を使用し、iframe コードは小さな自己完結型の JavaScript であるため、他のユーザー ページの優れたゲストになります。
jQuery は、ホスト ページで初期化され、次の使用可能なオプションがあります。これらの機能の詳細については、GitHub ページを参照してください。
$('iframe').iFrameSizer({
log: false,
contentWindowBodyMargin:8,
doHeight:true,
doWidth:false,
enablePublicMethods:false,
interval:33,
autoResize: true,
callback:function(messageData){
$('p#callback').html('<b>Frame ID:</b> ' + messageData.iframe.id +
' <b>Height:</b> ' + messageData.height +
' <b>Width:</b> ' + messageData.width +
' <b>Event type:</b> ' + messageData.type);
}
});
enablePublicMethods を設定すると、iframe にアクセスして、iFrame サイズを手動で設定したり、ホスト ページから iframe を削除したりすることができます。