随笔 - 58, 文章 - 0, 评论 - 6, 阅读 - 72611

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

window  parent 属性

语法(parent属性返回当前窗口的父窗口)

1
window.parent 

也就是可以通过此属性可调用父页面的方法和属性,例如

1
2
window.parent.父页面方法()     //window.parent.parentFn();
window.parent.父页面属性       //window.parent.parentVar;

但是如果父页面引入jq并把方法和属性在写$(function(){ })中,那么问题就来了。例如

1、父页面写法如下

2、子页面写法如下

 此时调用父页面的变量为undefined,而且调用方法直接报错,如图

之所以导致错误的原因,主要还是$(function(){ })这个方法,因为在这个方法中定义的变量和方法并不是全局的。以下主要介绍以下$(function(){ })方法

$(function(){ })方法中定义的变量和方法其实是局部的,也就是在$(function(){ })形成了自己的局部作用域,类似与es6的 “{}”形成的块级作用域。分析代码如下

而在子页面调用的变量和方法是全局的(即属于window对象的),所以此时子页面调用父级的方法和属性在全局(window)并不存在,所以会报错。解决方法在父页面修改,将变量和方法放到全局(即挂在window上)代码如下

 或

 以上两种方法都可以解决之前子页面调用问题

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示