0

この質問は、ブラウザの検出よりも機能の検出を支持するすべての人に特に当てはまります。

以前はブラウザ検出を使用して、Firefox と IE で埋め込みページの一部を切り取っていた iframe のサイズを変更していましたが、IE 11 では機能しなくなりました。

別のドメインのページがi フレームとして表示されています。外部ページの唯一のものは、書式設定されたテキストです。すべてのテキストを完全にフレーム化するためにクロムで必要なものに基づいて、iframe の高さを設定します。Safari と Opera は Chrome の設定で動作しますが、Firefox と IE は iframe のページを chrome よりも大きく表示し、テキストの一部が切り取られます。Firefox または IE が検出された場合に高さを変更する関数を使用してこれを解決しました。

function changeHeight(divName) {
    var userAgent = navigator.userAgent.toLowerCase();
    var is_IE = userAgent.indexOf('msie') > -1;
    var is_firefox = userAgent.indexOf('firefox') > -1;

    if (is_IE) {
        document.getElementById('storyP').style.height = '67447px';
    }

    if (is_firefox) {
        document.getElementById('storyP').style.height = '67375px';
    }
}

これは、IE がユーザー エージェント文字列を変更するまで問題なく機能していました。

そこで私は、ブラウザーを検出するのではなく、機能を検出すると言うすべての人々に耳を傾けることにしました。

問題: どのような機能ですか?

可能であれば、機能検出を使用してこの問題を解決する方法について、私は完全に途方に暮れています。

4

1 に答える 1

0

.scrollHeightJavaScript で iframe 内のプロパティをチェックしdocument、iframe の高さをその値に設定する必要があります。

そうすれば、リモート ページが将来変更された場合でも、iframe のサイズはそのコンテンツのサイズと一致します。

于 2013-12-23T06:56:51.670 に答える