ホームページ >ウェブフロントエンド >jsチュートリアル >js で実装された適応性の高い実際の iframe (IE、FF、Opera と互換性あり)_JavaScript スキル

js で実装された適応性の高い実際の iframe (IE、FF、Opera と互換性あり)_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 18:33:08961ブラウズ

次の js を見つけました

コードをコピーします コードは次のとおりです:

function SetCwinHeight(obj) )
{
var cwin=obj;
if (document.getElementById)
{
if (cwin && !window.opera)
{
if (cwin.contentDocument) && cwin.contentDocument.body.offsetHeight)
cwin.height = cwin.contentDocument.body.offsetHeight 20;
else if(cwin.Document && cwin.Document.body.scrollHeight)
cwin.height = cwin.Document .body.scrollHeight 10;
}
}
}

次に...
テスト プロセスに入ります (呼び出しは非常に簡単なのでスキップします)最初)
1 .IE --- 合格しましたが、高さにわずかな違いがあり、非常に小さく、スクロール バーはまだ存在します
2.FF --- 合格、IE と同じですが、そこにありますは小さなギャップです
3.Opera --- その JS を見てください。条件を満たしているかどうかはわかります
が、主流のブラウザは少なくともこれら 3 つの項目を満たしている必要があります。 ! !
そこで、Google
は、document.scrollHeight または offsetHeigth
を処理する際の各ブラウザの特殊な現象を検索し、Opera ブラウザが iframe コンテンツを処理する際に contentWindow
を使用してコンテンツを処理していることを発見しました。高さは高く、IE と一致しています
したがって、次の js があります
コードをコピーします コードは次のとおりです


<script> <br>関数 SetCwinHeight(obj) <br>{ <br>var cwin=obj; 🎜>if ( document.getElementById) <br>{ <br>if (cwin && !window.opera) <br>{ <br>if (cwin.contentDocument && cwin.contentDocument.body.offsetHeight) <br>cwin. height = cwin.contentDocument.body.offsetHeight 20; //FF NS <br>else if(cwin.Document && cwin.Document.body.scrollHeight) <br>cwin.height = cwin.Document.body.scrollHeight 10;/ /IE <br>} <br>else <br>{ <br>if(cwin.contentWindow.document && cwin.contentWindow.document.body.scrollHeight) <br>cwin.height = cwin.contentWindow.document.body. scrollHeight;// Opera <br>} <br>} <br></script>