web-dev-qa-db-ja.com

親ウィンドウのjQuery select要素

JQueryを使用して親ウィンドウでDIVを選択する方法はありますか?

例えば:

メインページにはこれが含まれていますが、

<div id="testdiv"></div>

ポップアップページには、いくつかのオプションと「適用」ボタンのあるフォームがあります。ユーザーが[適用]をクリックすると、メインページのスタイル属性に影響します。

の論理に沿った何か、

parent.$("#testdiv").attr("style", content from form);
47
Rob

コンテキストパラメータを使用する

$("#testdiv",parent.document)

ただし、実際にポップアップを使用する場合は、parentではなくopenerにアクセスする必要があります

$("#testdiv",opener.document)
106
Dr.Molle

この問題の解決策を探して、現在のページを見つけました。上記のソリューションを実装しました。

$("#testdiv",opener.document) //doesn't work

しかし、それは機能しません。以前のjQueryバージョンでは機能していたかもしれませんが、現在は機能していないようです。

私は別のstackoverflowページでこの作業ソリューションを見つけました: jqueryを使用して親ウィンドウオブジェクトにアクセスする方法?

私はこの実用的なソリューションを得ました:

window.opener.$("#testdiv") //This works.
21
TARKUS

私は同じ問題に遭遇しましたが、上で述べたように、受け入れられた解決策は私にとってはうまくいきませんでした。

フレームまたはiframe要素の内側にいる場合、代替ソリューションは

window.parent.$('#testdiv');

window.opener、window.parent、window.topの違いについて簡単に説明します:

  • window.openerは、window.open(...)を呼び出したウィンドウを参照して、呼び出し元のウィンドウを開きます。
  • window.parentは、frameまたはiframe要素内のウィンドウの親を参照します
3
crodriguez

使用することもできます

parent.jQuery("#testdiv").attr("style", content from form);

2
Jashwant

なぜ両方とも確認しないのですか?

if(opener.document){
  $("#testdiv",opener.document).doStuff();
}else{
  $("#testdiv",window.opener).doStuff();
}
0
Thomas Smart