前两天发现一个奇怪的问题:我在h5手机页面上通过window.open(url)的方式打开一个新窗口,在新窗口关闭的时候返回数据给父页面,然后新窗口自动close(),拿手机测试发现没有问题,测试通过。但是在PC端模拟的时候发现,子页面执行window.close()的时候父页面也会自动刷新,这个就很头疼了,因为测试人员很多时候都是通过PC来模拟进行测试的,每次都通过真机进行测试效率比较低。
问题分析:PC端模拟的时候并不是以新窗口的方式打开子页面的,而是在新标签页面打开的,就是因为是新标签页打开的方式导致的这个bug。之前测试的时候父页面的数据同样可以通过postMessage的方式传给子页面,所以这一点我就没有关注。
解决方案:知道是问题的原因了,剩下的就是解决了。尝试给open增加参数,name设置为"_blank"也无法达到新窗口的效果,后来对specs也进行设置了宽和高,才达到以新窗口的时候打开页面,此时再自动执行window.close(),父页面也不会自动刷新了。
原文地址:https://www.cnblogs.com/ya-tao/p/10446368.html
时间: 2024-10-15 04:42:42