iframe はロード時の高さと幅を自動的に取得します
function AutoResize (iframe)
{
//firefox
if(iframe.contentWindow)
{
iframe.height = iframe.contentWindow.document.documentElement.scrollHeight = iframe.contentWindow.documentElement.scrollWidth;
}
//IE
else if(iframe.contentDocument) {
iframe.height = iframe.contentDocument.width;
iframe .width = iframe.contentDocument.height;
}
}
iframe 自動読み込み:
var tdObj = document.getElementById('ifrtd');
tdObj.innerHTML = 'QQ は動的にロードされます。 ... ';
var iframe = document.createElement("iframe");
iframe.src = 'http://www.zbphp.com/'; (iframe.attachEvent){
//iframe.attachEvent("onload",AutoResize.call(iframe)); #エラー報告
iframe.attachEvent("onload", function(){
AutoResize(iframe);
});
} else {
//iframe.onload = AutoResize.call(iframe); #エラー レポートはサポートされていません
iframe.onload = function(){
AutoResize(iframe) ;
}
tdObj.appendChild(iframe);
実際には、ここでの iframe.onload は iframe.onload = AutoResize.call(iframe); として記述する必要がありますが、残念ながら、これはサポートされていません。
JavaScript で関数呼び出しを行う方法をまったく知りませんでした。たとえば、 iframe.onload = function(){} が関数を呼び出し、パラメータがある場合、他のプログラムのようにパラメータを直接渡すのではなく、このように記述するしかありません。
apply() call() は見たことがありますが、試してみてもサポートされていません。なぜ?