问题:
我在做一个项目,有两个窗口,一个主窗口,一个在主窗口中用window.open打开的子窗口.现在需要在主窗口中处理完相应事件后,调用子窗口的相应的函数,来传递一些信息,并修改子窗口的一些内容。因为是在主窗口的javascript代码中做的,发现调用子窗口的函数后,子窗口的内容并没有改变,而在主窗口的javascript调用子窗口函数的代码前加入alert()执行后,子窗口内容正确的被改变了。
可能情况:
这种情况一般出现在 alert() 之后的某个代码需要页面元素进入一定的状态才能使用,加上 alert() 之后,相当于页面元素有足够的时间进入一定的状态了,如果确定你的代码没有问题,你可以把 alert() 之后的代码放到一个 setTimeout 的函数中,也就是停一会再运行下面的代码,应该就没问题了。
解决方法:
按照上面所说的,我的情况应该就是子窗口页面元素还没有加载好,就调用了改变子窗口页面内容的方法,导致没有效果。
把相应代码放在setTimeout()中,延迟一秒执行,一切正常了。
本文介绍了一种解决主窗口调用子窗口方法时,子窗口内容无法立即更新的问题。通过将子窗口更新操作放置在setTimeout函数中实现延迟执行,确保了页面元素加载完成后再进行内容更新。






