web-dev-qa-db-ja.com

jqueryを使ってiFrame親ページにアクセスするにはどうすればいいですか?

Iframeがあり、親要素にアクセスするために次のコードを実装しました。

window.parent.document.getElementById('parentPrice').innerHTML

Jqueryを使って同じ結果を得るにはどうすればいいですか?
UPDATE:それともjqueryを使ってiFrameの親ページにアクセスするにはどうすればいいですか?

256
Amr Elgarhy

IFrameの親を探すには、次のようにします。

$('#parentPrice', window.parent.document).html();

$()ラッパーの2番目のパラメーターは、検索対象のコンテキストです。デフォルトはdocumentです。

479
Pim Jager

jqueryを使用してiFrame親ページにアクセスする方法

window.parent.document.

jQueryはJavaScriptを基盤としたライブラリであり、完全に置き換わるものではありません。最後のJavaScript式をすべて$を含むものに置き換える必要はありません。

38
bobince

親ドキュメント内でjQueryインスタンスを見つける必要がある場合(たとえば、プラグインによって提供されるユーティリティ関数を呼び出すため)には、次のいずれかの構文を使用してください。

  • window.parent.$
  • window.parent.jQuery

例:

window.parent.$.modal.close();

jQueryはwindowオブジェクトに添付されます。それがwindow.parentです。

12

親ウィンドウに置く:

<script>
function ifDoneChildFrame(val)
{
   $('#parentPrice').html(val);
}
</script>

そしてiframeのsrcファイルに次のように書きます。

<script>window.parent.ifDoneChildFrame('Your value here');</script>
7
stieven

次のように window.parent を使って、iframe内から親ウィンドウの要素にアクセスできます。

// using jquery    
window.parent.$("#element_id");

これは以下と同じです。

// pure javascript
window.parent.document.getElementById("element_id");

また、ネストされたiframeが複数あり、一番上のiframeにアクセスする場合は、次のように window.top を使用できます。

// using jquery
window.top.$("#element_id");

これは以下と同じです。

// pure javascript
window.top.document.getElementById("element_id");
7
Amr

それは少しひねりを加えた私のために働いています。私の場合、POPUP JSからPARENT WINDOWフォームに値を入力する必要があります。

だから私は$('#ee_id',window.opener.document).val(eeID);を使いました

優秀な!!!

5
Hitesh Patel

ええそれは私のためにも動作します。

注:window.parent.documentを使用する必要があります

    $("button", window.parent.document).click(function()
    {
        alert("Functionality defined by def");
    });
4
Yogesh Gandhi

ここで少しゲームが遅れるかもしれませんが、私はこの素晴らしいjQueryプラグインを発見しました https://github.com/mkdynamic/jquery-popupwindow 。それは基本的にonUnloadコールバックイベントを使うので、それは基本的に子ウィンドウのクローズを待ち受け、そしてその時点で必要なことを実行します。 SO親に戻るために子ウィンドウにJSを書く必要はまったくありません。

3
cj5

これらを実行する方法は複数あります。

I)直接親になる。

厳しいの私の子ページをiframeに置き換えたい

var link = '<%=Page.ResolveUrl("~/Home/SubscribeReport")%>';
top.location.replace(link);

ここでtop.locationは直接親を取得します。

II)一つ一つの親を得る

var element = $('.iframe:visible', window.parent.document);

複数のiframeがある場合は、ここでアクティブまたは表示のいずれかを指定します。

あなたはまた、さらなる親を得るためにこれらのようにすることができます、

var masterParent = element.parent().parent().parent()

III)識別子によって親になる。

var myWindow = window.top.$("#Identifier")
1
Bharat