ホームページ > ウェブフロントエンド > jsチュートリアル > jquery + ajax を適用すると、iframe の高さが適応可能になります

jquery + ajax を適用すると、iframe の高さが適応可能になります

php中世界最好的语言
リリース: 2018-04-26 15:32:14
オリジナル
1878 人が閲覧しました

今回はjquery+ajaxを適用する際にiframeの高さに合わせるための注意点をお届けします。一緒に見ていきましょう。

iframe の適応高さ自体は非常に単純な方法で、ページが読み込まれた後に高さを再計算します。

//公共方法:设置iframe的高度以保证全部显示数据
//function SetPageHeight() {
//    var iframe = getUrlParam('ifname');
//    var myiframe = window.parent.
document
.getElementById(iframe);
//     iframeLoaded(myiframe);
//}
var iframeLoaded = function (iframe) {
    if (iframe.src.length > 0) {
        if (!iframe.readyState || iframe.readyState == "complete") {
            var bHeight = 
            iframe.contentWindow.document.body.scrollHeight;
            var dHeight = 
            iframe.contentWindow.document.documentElement.scrollHeight;
            var height = Math.max(bHeight, dHeight);
            iframe.height = height;
        }
    }
}
//分页时重新设置 iframe 高度 ; 修改后:iframe.name = iframe.id
var reSetIframeHeight = function()
{
    try {
        var oIframe = parent.document.getElementById(window.name);
        oIframe.height = 100;
        iframeLoaded(oIframe);
    }
    catch (err)
    {
        try {
         parent.document.getElementById(window.name).height = 1000;
          } catch (err2) { }
    }
}
ログイン後にコピー

reSetIframeHeight() メソッドを呼び出します。

ただし、jquery ajax を使用してデータをリクエストする別の状況もあります。本体のロードが完了した後も、データはまだ http リクエストを行っており、この時点ではウィンドウの高さを占有するデータがないため、reSetIframeHeight メソッドを使用できません。高さを計算します。

このとき、私たちはメソッドを考えます: ajax はいつ実行できるでしょうか? もちろん、Complete イベント は実行が完了したときです。

ただし、各ページの ajax Complete イベントに処理を追加することはできません。ここではjquery ajaxのグローバル変数を使用します。

ajax と iframe の適応を処理するコード:

var sendcount = 0;
var completecount = 0;
// 添加ajax全局
事件处理
。
reSetIframeHeight();
$(document).ajaxStart(function (a, b, c) {
}).ajaxSend(function (e, xhr, opts) {
    sendcount++;
}).ajaxError(function (e, xhr, opts) {
}).ajaxSuccess(function (e, xhr, opts) {
}).ajaxComplete(function (e, xhr, opts) {
    completecount++; 
        reSetIframeHeight();
}).ajaxStop(function () {
});
ログイン後にコピー

まず reS​​etIframeHeight を実行し、各 ajax が完了した後に reSetIframeHeight を呼び出します。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

jQuery が iframe をフロントエンドの高さに適応させる方法

Jquery は iframe ページの Dom 要素を取得します (コード付き)

jQuery のクロスドメイン操作 DOM メソッドiframe

以上がjquery + ajax を適用すると、iframe の高さが適応可能になりますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート