如何从子窗口调用父窗口的父窗口JavaScript函数

5
如何从子窗口调用父级的父级javascript函数。
示例- Parent 1有一个名为abc()的javascript函数。现在如何从最初由Parent 1窗口触发的Parent 2中调用Parent1 Javascript函数的方法。 我尝试了window.parent.parent,但仍然没有成功。
提前致谢。
1个回答

6

不确定您所说的“子窗口”是什么意思。但我猜 window.opener 可能是您要找的。

// Call abc in the window that opened the current window
window.opener.abc();

更新

虽然我没有试过,但是既然window.opener是一个引用当前窗口的打开窗口的窗口,则我猜您应该能够在该引用上调用opener属性,以获取其父级的引用:

window.opener.opener.abc();

如果你想要访问最顶层的窗口(即根窗口),你可以使用 window.top

window.top.abc();

是的,我同意当我们从直接父窗口打开子窗口时,这个方法很有效。但在我的情况下,我有一个页面1,我从中调用另一个页面2,然后我从这个页面2调用子窗口。现在我的要求是从子窗口调用页面1的JavaScript函数。 - Beginner
@初学者 我更新了我的答案,并添加了一些额外的信息。 - Christofer Eliasson
仍然没有运气,它说未定义,但如果在Page1中从Page2(子页面)调用window.opener,则可以正常工作,但在Page2的子窗口中却说未定义 :( - Beginner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接