14

ドメインexample.comによって提供される、parent-win.htmlと呼ぶことにしましょう。このファイルには jquery が含まれています。このページには iframe (iframe-win.html と呼びましょう) が埋め込まれています。form-elemiframe-win.html には、 idと valueを持つフォーム要素がありますHello World!。今、私は iframe 内で次のことを行います。

var jQuery = parent.jQuery;
console.log(jQuery('#form-elem').val());

JS に関する私の限られた知識によると、Hello World!コンソールに表示されるはずですが、代わりに未定義と表示されます。さて、私の質問は、jquery を iframe に再度ロードする必要がありますか、それとも親ウィンドウに既にロードされている jquery オブジェクトを利用できますか?

これは、親/iframe からの通常の iframe/親コンテンツへのアクセスではないことに注意してください。

4

3 に答える 3

26

iframeでこれを試してください:

if (typeof(jQuery) == "undefined") {
    var iframeBody = document.getElementsByTagName("body")[0];
    var jQuery = function (selector) { return parent.jQuery(selector, iframeBody); };
    var $ = jQuery;
}
于 2012-06-08T13:51:04.107 に答える
8

Moinの回答に基づくより良い解決策は次のとおりです。

if (typeof(jQuery) == "undefined") {
    window.jQuery = function (selector) { return parent.jQuery(selector, document); };
    jQuery = parent.$.extend(jQuery, parent.$);
    window.$ = jQuery;
}

したがって、$.get、$.extends などの $ の関数を使用できます。

于 2016-06-03T03:31:25.810 に答える
1

内に jQuery をロードする必要がありますiframe

編集: フレームが同じドメインにない場合は、jQuery をリロードする必要はありません。iframe から jQuery ライブラリにアクセスするを参照してください。

于 2012-06-08T13:47:04.777 に答える