0

現在アクセスしているサイトのスナップショットを、クライアントの Web ブラウザーの解像度に関係なく固定解像度で取得したいと考えています。そのため、その固定解像度の非表示の iframe にアクティブなサイトをロードし、そこからスナップショットを取得したいと思います。

私の質問は次のとおりです。現在 iframe にいるのと同じサイトを読み込むにはどうすればよいですか。他のページの読み込みは正常に機能しますが、同じサイトを iframe に読み込むことができませんでした。

これはセキュリティ上の問題ですか?

4

2 に答える 2

1

ネストされた iframe をテストしました。さまざまなブラウザーで.src同じです。document.href.urlこのような iframe を最初のレベルに埋め込むことができるのは Chrome だけです。他のブラウザーは上記の再帰を防ぎ、iframe を空のままにします。(ちなみに、Firefox と Opera ではそれぞれ 20 の異なるネストされた iframe を最大 10 個まで許可し、Google Chrome や Explorer などの他のブラウザーでは無限に iframe を追加できるようです。) 次のコードを使用して、親ページを iframe に埋め込むことができます。 、わずかに変更された URL を介して:

function load_iframe(addr) {
    var iframe = document.getElementById('iframe1');
    if (addr == document.location.href) {
        if (addr.indexOf('?') == -1) {
            addr += '?dummy_string';
        } else {
            addr += '&dummy_string';
        }
    }
    iframe.src = addr;
}

HTML の例:

<a href="" onclick="event.preventDefault();load_iframe(this.href);">This page</a>
<iframe id="frame1" src="" style="width:100%; height:500px" />

テストスクリプトはこちら。

于 2012-08-03T17:37:54.647 に答える
0

何かのようなもの

if (!document.getElementById('hiddenFrame') {
document.appendChild('<iframe id="hiddenFrame" src='+document.location+' style="display:none"'/>); }

ページ下部の BODY タグを閉じる直前にスクリプトを配置するか、jQuery などのライブラリを使用します。

于 2012-08-03T11:46:00.613 に答える