クロスドメインiframeサイズ変更


85

別のドメインのiframeのサイズを変更するにはどうすればよいですか

-編集

いくつかの解決策については下にスクロールしてください..またはこれを行わない方法を読んでください:D

何時間にもわたるコードハッキングの後、結論として、私のドメインでレンダリングされるスクロールバーでさえ、iframe内のすべてにアクセスできなくなりました。私は無駄に多くのテクニックを試しました。

時間を節約するために、このルートをたどらないでください。クロスドメイン通信にはsendMessagesを使用してください。 私が使用しているHTML <5のプラグインがあります-良い例については一番下に移動してください:)


過去数日間、私はiframeをサイトに統合しようとしています。これは、反対側が開発してAPIを開発している間の短期的な解決策です(数か月かかる可能性があります...)そして、これは短期的な解決策であるため、easyXDMを使用したいと思います-私は他のドメインにアクセスできますが、 p3pヘッダーをそのまま追加.....

3つのiframe

私が見つけた最も近い解決策は3つのiframeでしたが、それはクロムとサファリの精神に影響するため、それを使用することはできません。

クロームで開く

http://css-tricks.com/examples/iFrameResize/crossdomain.php#frameId=frame-one&height=1179

スクロールバーを測定する

scrollheightを使用してフォームのサイズを変更する方法に関する別の投稿を見つけました。理論的にはうまく機能しますが、iframeのスクロールの高さを使用して適切に適用できませんでした。

document.body.scrollHeight

それは明らかに体の高さを使用します(これらのプロパティに100%アクセスすることはできません100%はクライアントの表示canvazに基づいており、xドメインのドキュメントの高さではありません)

jqueryを使用してiframeの高さを取得してみました

$('#frameId').Height()

$('#frameId').clientHeight

$('#frameId').scrollHeight

クロムとは異なる戻り値、つまり-またはまったく意味がありません。問題は、フレーム内のすべてが拒否されることです-スクロールバーも...

計算されたスタイル

しかし、iframeのクロムを調べて要素を表示すると、iframe内のドキュメントの寸法が表示されます(jquery x-domainを使用してiframe.heighを取得します-アクセスが拒否されました)計算されたCSSには何もありません ここに画像の説明を入力してください

さて、クロムはそれをどのように計算しますか?(edit-browserは、組み込みのレンダリングエンジンを使用してページを再レンダリングし、これらすべての設定を計算しますが、クロスドメイン詐欺を防ぐためにどこにも添付されていません。

HTML4

HTML4.xの仕様を読みましたが、document.elementを介して読み取り専用の値を公開する必要があると書かれていますが、jqueryを介してアクセスが拒否されています

プロキシフレーム

ユーザーがiframeを介してログインし、プロキシが実際のコンテンツではなくログインページを取得するまで、サイトをプロキシして、どちらが問題ないかを計算するというルートをたどりました。また、ページを2回呼び出すことは受け入れられない人もいます

http://www.codeproject.com/KB/aspnet/asproxy.aspx

http://www.johnchapman.name/aspnet-proxy-page-cross-domain-requests-from-ajax-and-javascript/

ページを再レンダリングする

ここまでは行きませんでしたが、ソースを調べてソースファイルに基づいてページを再レンダリングするjscriptエンジンがあります。しかし、それらのjscriptをハッキングする必要があります..そしてそれは営利団体にとって理想的な状況ではありません...そしていくつかは純粋なJavaアプレットまたはサーバーサイドレンダリングを含みます

http://en.wikipedia.org/wiki/Server-side_JavaScript

http://htmlunit.sourceforge.net/ <-java not jscript

http://maxq.tigris.org/


2013年9月の更新を編集

これはすべて、HTML5ソケットで実行できます。しかし、easyXDMは、HTML5以外の苦情ページの優れたフォールバックです。

解決策1非常に優れた解決策!

easyXDMの使用

サーバー上で、次の形式のページを設定します。

<html>
<head>
<script src="scripts/easyXDM.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">

    var transport = new easyXDM.Socket(/** The configuration */{
    remote: "http://www.OTHERDOMAIN.com/resize_intermediate.html?url=testpages/resized_iframe_1.html",

    //ID of the element to attach the inline frame to
    container: "embedded",
    onMessage: function (message, origin) {
        var settings = message.split(",");
        //Use jquery on a masterpage.
        //$('iframe').height(settings[0]);
        //$('iframe').width(settings[1]);

        //The normal solution without jquery if not using any complex pages (default)
        this.container.getElementsByTagName("iframe")[0].style.height = settings[0];
        this.container.getElementsByTagName("iframe")[0].style.width = settings[1];
    }
});

</script>

</head>

<body>
    <div id="embedded"></div>
</body>

発信者ドメインでは、intermiedate_framehtmlとeasyXDM.jsを同じ場所に追加するだけです。親フォルダのように-あなたはあなたのためだけに相対ディレクトリまたは含まれているフォルダにアクセスすることができます。

オプション1

すべてのページにスクリプトを追加したくない場合は、オプション2を参照してください。

次に、サイズ変更が必要な各ページの最後に簡単なjscriptを追加するだけです。これらの各ページにeasyxdmを含める必要はありません。

 <script type="text/javascript">
            window.onload = function(){ parent.socket.postMessage( (parseInt(document.body.clientHeight)) + "," + ( document.body.clientWidth ) );  };
        </script>

送信するパラメータを変更しました。幅を適切に機能させたい場合は、otherdomainのページに、次のようなスタイルでページの幅を含める必要があります。

<style type="text/css">
            html, body {
                overflow: hidden;
                margin: 0px;
                padding: 0px;
                background-color: rgb(75,0,85);
                color:white;
                width:660px
            }
            a {
            color:white;
            visited:white;
            }
        </style>

これは私にとって素晴らしい働きをします。幅が含まれていない場合、フレームは少し奇妙に動作し、「あるべきもの」を推測しようとします。必要に応じて縮小することはありません。

オプション2

変更をポーリングするように中間フレームを変更します

中間フレームは次のようになります。

    <!doctype html>
<html>
    <head>

        <title>Frame</title>
        <script type="text/javascript" src="easyXDM.js">
        </script>
        <script type="text/javascript">
            var iframe;
            var socket = new easyXDM.Socket({
                //This is a fallback- not needed in many cases
                swf: "easyxdm.swf",
                onReady: function(){
                    iframe = document.createElement("iframe");
                    iframe.frameBorder = 0;
                    document.body.appendChild(iframe);
                    iframe.src = "THE HOST FRAME";
            iframe.onchange = messageBack();

                },
                onMessage: function(url, origin){
                    iframe.src = url;
                }
            });

            //Probe child.frame for dimensions.
            function messageBack(){
                socket.postMessage ( iframe.contentDocument.body.clientHeight + "," + iframe.contentDocument.body.clientWidth); 
            };

            //Poll for changes on children every 500ms.
            setInterval("messageBack()",500); 

        </script>
        <style type="text/css">
            html, body {
                overflow: hidden;
                margin: 0px;
                padding: 0px;
                width: 100%;
                height: 100%;
            }

            iframe {
                width: 100%;
                height: 100%;
                border: 0px;
            }
        </style>
    </head>
    <body>

    </body>
</html>

サイズが変更された場合にチェックし、サイズが変更された場合にのみ送信するために、間隔をより効率的にすることができます。500ミリ秒ごとにメッセージを投稿する必要はありません。このチェックを実装すると、ポーリングを50ミリ秒まで変更できます。楽しんで


ブラウザ間で動作し、高速です。素晴らしいデバッグ機能!!

Excellent Work to  Sean Kinsey  who made the script!!!

解決策2(機能しますが、あまり良くありません)

したがって、基本的に、他のドメインと相互に合意している場合は、sendmessageを処理するライブラリを追加できます。他のドメインにアクセスできない場合は、さらにハックを探し続けてください。見つけたハックを見つけることができなかったか、完全に正当化できなかったためです。

したがって、他のドメインはこれらをHeadタグに含めます

<script src="scripts/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="scripts/jquery.postmessage.min.js" type="text/javascript"></script>
<script src="scripts/club.js" type="text/javascript"></script>

club.jsには、サイズ変更呼び出しのために行ったカスタム呼び出しがいくつかあり、が含まれています。

 $(document).ready(function () {   
    var parent_url = decodeURIComponent( document.location.hash.replace( /^#/, '' ) ),link;
//Add source url hash to each url to authorise callback when navigating inside the frame.Without this clicking any links will break the communication and no messages will be received
$('a[href]').each(function(){ 
     this.href = this.href + document.location.hash ;
});
//Get the dimensions and send back to calling page.
var h1 = document.body.scrollHeight;
var w1 = document.body.scrollWidth;
$.postMessage({ if_height: h1, if_width: w1 }, parent_url, parent );
  });

そして、あなたのページはすべての大変な仕事をし、素晴らしいスクリプトを持っています...

  //This is almost like request.querystring used to get the iframe data
  function querySt(param, e) {
         gy = e.split("&");
         for (i = 0; i < gy.length; i++) {
             ft = gy[i].split("=");
             if (ft[0] == param) {
                 return ft[1];
             }
         }
     }


     $(function () {
         // Keep track of the iframe dimensions.
         var if_height;
         var if_width;
         // Pass the parent page URL into the Iframe in a meaningful way (this URL could be
         // passed via query string or hard coded into the child page, it depends on your needs).
         src = 'http://www.OTHERDOAMIN.co.uk/OTHERSTARTPAGE.htm' + '#' + encodeURIComponent(document.location.href),
         // Append the Iframe into the DOM.
         iframe = $('<iframe " src="' + src + '" width="100%" height="100%" scrolling="no" frameborder="0"><\/iframe>').appendTo('#iframe');

         // Setup a callback to handle the dispatched MessageEvent event. In cases where
         // window.postMessage is supported, the passed event will have .data, .origin and
         // .source properties. Otherwise, this will only have the .data property.
         $.receiveMessage(function (e) {
             // Get the height from the passsed data.
             //var h = Number(e.data.replace(/.*if_height=(\d+)(?:&|$)/, '$1'));
             var h = querySt("if_height", e.data);
             var w = querySt("if_width", e.data);


             if (!isNaN(h) && h > 0 && h !== if_height) {
                 // Height has changed, update the iframe.
                 iframe.height(if_height = h);
             }
             if (!isNaN(w) && w > 0 && w !== if_width) {
                 // Height has changed, update the iframe.
                 iframe.width(if_width = w);
             }
             //For debugging only really- can remove the next line if you want
             $('body').prepend("Recieved" + h + "hX" + w + "w .. ");
             // An optional origin URL (Ignored where window.postMessage is unsupported).
           //Here you must put the other domain.com name only! This is like an authentication to prevent spoofing and xss attacks! 
         }, 'http://www.OTHERDOMAIN.co.uk');
     });

オプション3

それらは現在、クロスドメインiFrameのサイズ変更を管理するための小さなJSライブラリであり、iFrameにJavaScriptを少し含める必要がありますが、これは依存関係のないネイティブJSのわずか2.8k(765バイトGzip)です。親ページから呼び出されるまで何もしません。これは、他の人のシステムの素敵なゲストであることを意味します。

このコードは、mutationObserverを使用してDOMの変更を検出し、サイズ変更イベントも監視して、iFrameがコンテンツに合わせたサイズのままになるようにします。IE8 +で動作します。

https://github.com/davidjbradshaw/iframe-resizer


4
easyXDMの例は、実際にはコードがはるかに少なく、外部ライブラリに依存せず、古いブラウザーでも機能します:)はい、著者なので偏見がありますが、それでも..
Sean Kinsey

easyXDMを試しましたが、内部フレームで他のリンクを参照して動作させることができませんでした。例を探しました。リンクが壊れていて、サンプルページがクリアされませんでした。動作しました。そして私の最初の答えでした..しかし、私はこれを使用しました。あなたは..私は見て見..内部のブラウジングのための道をください投稿することができます
ピョートル・クラ

ダウンロードに付属する@ppumkinのは、内部ブラウ​​ジングを完全にサポートしています。壊れたリンクは、私がやった実験に、おそらくですが、サーバが一点にフラッシュしまった...
ショーン・キンゼイ

1
うん、それを見て-そして見て、見て:D何らかの理由で私はそれを私のサイトで動作させることができませんでした。もう一度やり直します。
ピオトルクラ

1
それは機能します-しかし、私がそのドメインのリンクをクリックすると、それはあなたのライブラリでページをリロードします-しかし私はメッセージを受け取ることができません。どこから来たのかに関係なく、どうすればリクエストを受け入れることができますか。そして、このeasyxdm.swfは何のためにありますか?:)
Piotr Kula

回答:


10

重要なのは、あるドメインのドキュメントから別のドメインのドキュメントまで計算された高さを取得する必要があるため、これにクロスドメインメッセージングを使用する以外に方法はありません。

したがって、postMessage(すべてのモダーブラウザで機能する)を使用してこれを行うか、easyXDMのサイズ変更iframeの例を5分間適応させます。

相手は実際には、いくつかのファイルをドメインにコピーし、ドキュメントに1行のコードを追加するだけです。


それどころか私の友人。iframeのサイズをクロスdoimainページからiframeのドキュメントサイズに変更し、スクロールバーを使用しない方法を見つけました。ちょっとハッキーですが、後で投稿します。とてもシンプルで信じられないほどです。
ピオトルクラ

ええ...私はsendmessagejquweryプラグインを使用しました-私は別のハックを見つけましたが-誤検知..;)良いヒントをありがとう!
ピオトルクラ

まあ、時々最高のことはあなたの仲間に耳を傾けることです-あなたが他の誰も持っていない魔法のハックを発見する可能性はかなりスリムです:)
ショーンキンジー

もし私が-純粋なヒットとミスによって-素晴らしいとしたら想像してみてください。しかし、そうです:Dありがとう
Piotr Kula

本当-他に何もないとしても、あなたは少なくとも何か新しいことを試し、実験し、そしておそらく学んだこともあります:)
ショーンキンジー

25

ショーンが述べたことと同様に、postMessageを使用できます。クロスドメインでiframeのサイズを変更するさまざまな方法を試すのに多くの時間を費やしましたが、David Walshによるこのすばらしいブログ投稿に出くわすまで運がありませんでした:http//davidwalsh.name/window-iframe

これは私のコードとDavidのソリューションの組み合わせです。私のソリューションは、特にiframeのサイズ変更を対象としています。

子ページで、ページの高さを見つけて、それを親ページ(iframeを含む)に渡します。element_idを要素ID(html、bodyなど)に置き換えます。

<script>
function adjust_iframe_height(){
    var actual_height = document.getElementById('element_id).scrollHeight;
    parent.postMessage(actual_height,"*"); 
    //* allows this to post to any parent iframe regardless of domain
}
</script>

<body onload="adjust_iframe_height();"> 
//call the function above after the content of the child loads

親ウィンドウで、このコードを追加します。iframe_idをiframeIDに置き換えます。

<script>
// Create IE + others compatible event handler
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

// Listen to message from child window
eventer(messageEvent,function(e) {
  console.log('parent received message!:  ',e.data);
  document.getElementById('iframe_id').height = e.data + 'px';
},false);
</script>

コンソールを開くと、コンソールログに高さが印刷されているのがわかります。これはデバッグに役立ちますので、そのままにしておきました。

最高、ベイカー


これはうまく機能しますが、IEではそれほど多くはありません。2つの変数を送信する必要がありましたが、IEは、配列またはオブジェクトの場合、「データ」を受け入れません。ただし、単純にdata = var1 + "|"としてデータを作成しました。var2。親では、|で文字列を分割するだけです。2つの変数を取り戻します。
dbonneville 2013年

5

これに対する多くの異なる解決策を検討した結果、さまざまなユースケースを考慮に入れるための単純な小さなライブラリを作成することになりました。ポータルページで複数のユーザー生成iFrameをサポートするソリューションが必要だったため、サポートされているブラウザーのサイズ変更と、iFrame後のホストページのJavaScriptの読み込みに対応できました。また、幅のサイズ設定とコールバック関数のサポートを追加し、body.marginのオーバーライドを許可します。これは、ゼロに設定する必要がある可能性が高いためです。

https://github.com/davidjbradshaw/iframe-resizer

iframeコードはほんの少しの自己完結型のJavaScriptなので、他の人のページの良いゲストです。

スクリプトは、次の使用可能なオプションを使用してホストページで初期化されます。

iFrameResize({
    log                    : true,  // For development
    autoResize             : true,  // Trigering resize on events in iFrame
    contentWindowBodyMargin: 8,     // Set the default browser body margin style (in px)
    doHeight               : true,  // Calculates dynamic height
    doWidth                : false, // Calculates dynamic width
    enablePublicMethods    : true,  // Enable methods within iframe hosted page 
    interval               : 32,    // interval in ms to recalculate body height, 0 to disable refreshing
    scrolling              : false, // Enable the scrollbars in the iFrame
    callback               : function(messageData){ // Callback fn when message is received
        $('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
        );
    }
});

いいやつ。間違いなく多くの人に使われるものです!+1
ピオトルクラ2013年

1
リモートドメインにアクセスできない場合はどうすればよいですか?ありがとう
Bala Peterson

@BalaPeterson、リモートドメインにアクセスできない場合は、ブラウザのセキュリティ制限のため、アクセスできません。
David Bradshaw

0

iframeでscroll = noを使用する代わりに、「auto」に変更します。次に、実際のウィンドウのサイズを取得します

$(window).height();

それをiframeの高さ属性として使用します。

さて、結果は...

「ページ」スクロールはありません。「iframe」スクロールのみです。ナビゲートするときは、誰が巻物であるかは関係ありませんが、重要なのは1つしかないということです。

さて、ユーザーがナビゲートしているときにウィンドウのサイズを変更するだけの問題があります。それを解決するために、私は使用します:

setInterval(getDocHeight, 1);

その解決策がバグを引き起こすと思いましたか?それは私のために働いています、そしてiFrameで私はphpによって生成された動的なcontectを持っていました。私はそれに関する将来のバグを恐れています...


2
もちろん、「iframe」スクロールは常に同じサイズのページになります。したがって、ナビゲートしている間は、「ページ」スクロールであるかのように表示されます。
Elton Morais 2011

0

今日、私が知っている解決策は4つだけです。

3番目のものだけが多くの問題を解決することができます。たとえば、レスポンシブiFrameを作成できます。内側から閉じるか、通信できます。ただし、これを行うには、IframeのiFrameと「サードパーティのCookie」の回避策(オプション)が必要です。

例を挙げて記事を作成しました:イベント駆動型クロスドメインiFrame


0

'object-fit' HTML5属性を調べましたか?iframeを拡大縮小するのではなく、ビデオ/画像をiframeに拡大縮小します(幅が5,000ピクセルになる中サイズの画像を取得する場合に便利です)。「フィット」オプション(その他は「カバー」と「フィル」)は、アスペクト比を維持しながら、一種のレターボックスアプローチを使用してソースをフィットさせます。HTML5を使用せずに表示すると、非常に多くのポリフィルが利用できるように見えます。これは素晴らしいですが、Edge側のバグにより、MicrosoftのNew Nightmareとの互換性が約1年間維持されていますhttps//github.com/anselmh/object-fit

編集:クロスドメインの問題を回避するには、Chrome拡張機能コンテンツスクリプトで作業を行うことができます。これは、iframeを貼り付けているページの一部であると見なされるためです。


0

HTTPS別のリンクがiframeの自動高さへの高さを取得

https://-a.comコンテンツ:

 <!DOCTYPE html>
    <html>
    <head>
        <title>Test Page</title>
    </head>
    <body>
        Test Page:
        <hr/>
        <iframe id="iframe" src="https://-b.com" style="width:100%;min-height:600px;border:none;" scrolling="no" ></iframe>
        <script>
        // browser compatibility: get method for event 
        // addEventListener(FF, Webkit, Opera, IE9+) and attachEvent(IE5-8)
        var myEventMethod = 
            window.addEventListener ? "addEventListener" : "attachEvent";
        // create event listener
        var myEventListener = window[myEventMethod];
        // browser compatibility: attach event uses onmessage
        var myEventMessage = 
            myEventMethod == "attachEvent" ? "onmessage" : "message";
        // register callback function on incoming message
        myEventListener(myEventMessage, function (e) {
            // we will get a string (better browser support) and validate
            // if it is an int - set the height of the iframe #my-iframe-id
            if (e.data === parseInt(e.data)) 
                document.getElementById('iframe').height = e.data + "px";
        }, false);
        </script>
    </body>
    </html>

https://-b.com iframeコンテンツ:

<!DOCTYPE html>
<html>
<head>
    <title>Test Iframe Content</title>
    <script type="text/javascript">
    // all content including images has been loaded
    window.onload = function() {
        // post our message to the parent
        window.parent.postMessage(
            // get height of the content
            document.body.scrollHeight
            // set target domain
            ,"*"
        )
    };
</script>
</head>
<body>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>1
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>2
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>3
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>4
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>5
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>6
</body>
</html>

仕事台:

xcom http> ycom https WORK

xcom https> ycom https WORK

xcom http> ycom http WORK

xcom https> ycom http WORK

テスト作業のスクリーンショット


-2

iframe内に含まれるページの高さを探していますか?iframeコンテンツの高さをチェックしてからiframeの高さをコンテンツの高さに設定するJavaScriptが機能するようになりました。

var Height = document.getElementById('iFrameId').contentWindow.document.body.scrollHeight;

document.getElementById('iFrameId').height = Height;

ただし、これは、iframeに表示しているページが同じドメインにある場合にのみ機能します。そうでない場合は、必要な情報にアクセスできません。したがって、アクセス拒否エラー。


はい、私はすでにそれを試しました。それはうまく機能します..あなたが言ったのと同じドメインで..教えてください-ブラウザが最初に高さを計算するときに100%がいくらであるかをどのように知るのですか?なぜこれらの値にもアクセスできないのですか?IFRAME内のすべての単一のページでもX-ドメイン...のために計算されたスタイルでクローム店この
ピョートル・クラ

高さは、コンテンツとその属性に応じて計算されます。要素の高さは、子がレンダリングされるまで不確実です。
MarioRicalde

レンダリングされた値を取得するにはどうすればよいですか?クロムの検査のように?
ピョートル・クラ

-1これはクロスドメインでは機能しないため、彼はそれを求めました。
ショーンキンジー

値を取得できません。インスペクターは、「ブラウザー拡張機能」レベルのアクセス許可を持っており、「異なるオリジンのWebページ」レベルのアクセス許可を持っていないためにできます。
クエンティン

-2

iframeのサイズを変更するには、次の簡単なスクリプトを使用します。

これは頭​​の中にあります:(これはphpスクリプト用に書かれています。htmlの場合は、「」を「」に、「」を「」に変更します。

<script type='text/javascript'>
<!--
function resizeIframe(id){
/*
this.obj=obj
//this.obj.width=null
//this.obj.width=window.frames[\"sizeframe1\"].document.body.scrollWidth
this.obj.style.height=\"\" // for Firefox and Opera
setTimeout(\"this.obj.style.height=this.obj.contentWindow.document.body.scrollHeight+(notIE?heightOffset:0)\",10) // setTimeout required for Opera
*/

el=document.getElementById(id)
el.style.height='200px' // for Firefox and Opera
setTimeout('el.style.height=el.contentWindow.document.body.scrollHeight+\"px\"',1) // setTimeout required for Opera
}

// -->
</script>"

頭の終わり

これは本文に含まれます(これはphpスクリプト用に作成されたものであり、htmlの場合はすべての「」を「」に、「」を「」に変更します...)

<iframe onload='resizeIframe(this.id)' allowTransparency=\"true\" name='ccpaymentwindow' id='sizeframe1' marginwidth='1' marginheight='1' height='700' width='690' border='0' frameborder='1' scrolling='no' src='ccmslink.php?variable1=" . $variable1 . "'></iframe>

ボーナス:上記にいくつかのヒントがあります。これはphpスクリプト用に設定されているため、多くのことを実行できます...詳細については、さらに実行してください...

これの鍵は「sizeframe1」です....同じページの複数の「resizers」の場合、同じスクリプトをコピーしますが、iframeのIDとヘッドのスクリプトの名前、およびビオラを変更します。同じページに複数のリサイザーがあります...非常にうまく機能します!

プンを持っています。


私はあなたが実際に尋ねられた質問に取り組んでいるとは思わない。
Andrew Barber 2014年

うん-これは同じドメインのiframeのサイズを変更するための純粋なJavaScriptです。いずれにせよ、jQueryを使用する方がはるかに簡単です。これはクロスサイトでは機能せず、ここにはそれを可能にする特別なものは何もありません。そして、phpスクリプトのようなものはありませんか?!
ピオトルクラ2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.