如何使用jquery访问父窗口对象?

IT技术 javascript jquery
2021-01-14 16:51:17

如何使用jquery访问父窗口对象?

这是我的父窗口变量,我想在关闭子窗口后设置它的值。

$('#serverMsg').html('some text here');
4个回答
window.opener.$("#serverMsg")
我认为,仅当 JQuery 在开启器中处于活动状态时才有效。
2021-03-16 16:51:17

如果您在弹出窗口中并且想要访问打开的窗口,请使用window.opener. 最简单的方法是,如果您也可以在父窗口中加载 JQuery:

window.opener.$("#serverMsg").html // 这在父窗口中使用 JQuery

或者你可以使用普通的 olddocument.getElementById来获取元素,然后在你的子窗口中使用 jquery 扩展它。以下应该有效(不过我还没有测试过):

element = window.opener.document.getElementById("serverMsg");
element = $(element);

如果您在 iframe 或框架集中并且想要访问父框架,请使用window.parent代替window.opener

根据同源策略,只有当子窗口和父窗口都在同一个域中时,所有这些才能毫不费力地工作。

或者您可以使用另一种方法:

$( "#serverMsg", window.opener.document )
我更喜欢这种方法,因为它不依赖于具有 jQuery 的打开窗口 - 尽管无论如何它可能会有 jQuery。
2021-04-09 16:51:17

这是对可以在 iframe 中使用的原始问题的更直接的答案(父窗口而不是 opener),假设 iframe 中的域名与父窗口的域名匹配:

window.parent.$("#serverMsg")