jQuery在父窗口中select元素

有没有办法使用jQuery在父窗口中select一个DIV?

例如:

首页包含这个,

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

popup页面有一个表单,有一些选项和一个“应用”button。 当用户点击应用时,会影响主页面上的样式属性。

一些沿着逻辑的东西,

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

使用上下文参数

 $("#testdiv",parent.document) 

但是如果你真的使用popup窗口,你需要访问opener而不是窗口

 $("#testdiv",opener.document) 

我寻找这个问题的解决scheme,并遇到了本页面。 我实现了上面的解决scheme:

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

但它不起作用。 也许它在以前的jQuery版本中工作,但现在似乎不工作。

我发现这个工作解决scheme在另一个stackoverflow页面: 如何使用jquery访问父窗口对象?

从中我得到了这个工作解决scheme:

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

你也可以使用,

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

我遇到了同样的问题,但如上所述,接受的解决scheme并不适合我。

如果您在框架或iframe元素内,则可以使用其他解决scheme

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

以下是window.opener,window.parent和window.top之间区别的简要说明:

  • window.opener引用调用window.open(…)的窗口来打开调用它的窗口
  • window.parent是指框架或iframe元素中窗口的父级

为什么不能既确定?

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