js代码中加入alert()就成功执行,不加就不对的问题

本文介绍了一种解决主窗口调用子窗口方法时,子窗口内容无法立即更新的问题。通过将子窗口更新操作放置在setTimeout函数中实现延迟执行,确保了页面元素加载完成后再进行内容更新。

问题: 

      我在做一个项目,有两个窗口,一个主窗口,一个在主窗口中用window.open打开的子窗口.现在需要在主窗口中处理完相应事件后,调用子窗口的相应的函数,来传递一些信息,并修改子窗口的一些内容。因为是在主窗口的javascript代码中做的,发现调用子窗口的函数后,子窗口的内容并没有改变,而在主窗口的javascript调用子窗口函数的代码前加入alert()执行后,子窗口内容正确的被改变了。       

可能情况:

         这种情况一般出现在 alert() 之后的某个代码需要页面元素进入一定的状态才能使用,加上 alert() 之后,相当于页面元素有足够的时间进入一定的状态了,如果确定你的代码没有问题,你可以把 alert() 之后的代码放到一个 setTimeout 的函数中,也就是停一会再运行下面的代码,应该就没问题了。

解决方法:

           按照上面所说的,我的情况应该就是子窗口页面元素还没有加载好,就调用了改变子窗口页面内容的方法,导致没有效果。

把相应代码放在setTimeout()中,延迟一秒执行,一切正常了。 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值