
本教程详细阐述了嵌入式网页(如 `
在现代网页开发中,嵌入式网页(通常通过
window.parent 属性解析
window.parent 是一个全局属性,它返回当前窗口的父窗口的 window 对象。如果当前窗口没有父窗口(即它本身就是顶级窗口),或者父窗口与当前窗口不同源,那么 window.parent 将返回对当前窗口本身的引用(在同源情况下)或抛出安全错误(在跨源情况下)。
理解 window.parent 的关键在于,一旦你获得了父窗口的 window 对象,你就可以像操作当前窗口的 window 对象一样,访问父窗口的全局变量、函数,以及其 document 对象,进而操作父窗口的DOM。
实现子页面对父页面的操作
以下我们将通过具体的代码示例,演示子页面如何修改父页面的DOM内容以及调用父页面定义的函数。
1. 修改父页面 DOM 内容
子页面可以通过 window.parent.document 访问父页面的文档对象,然后利用标准的DOM操作方法(如 getElementById、querySelector、innerHTML 等)来修改父页面的内容。
主页面 (index.html) 示例:
主页面
主页面内容区域
这里是主页面的一段文本,等待子页面修改。
下方是嵌入的子页面:
子页面 (child.html) 示例:
子页面
子页面控制面板
当用户点击子页面中的“修改主页面内容”按钮时,子页面会通过 window.parent.document.getElementById('parentMessage').innerHTML 来更新主页面中相应段落的文本。
2. 调用父页面定义的函数
除了修改DOM,子页面也可以直接调用父页面全局作用域中定义的 JavaScript 函数。
主页面 (index.html) 示例(在 标签底部添加脚本):
