今天在维护旧系统时,遇到一个问题。
首先,我给一个页面上的按钮加了个打印预览的按钮,点击它,可以弹出一个新窗口对数据进行打印预览。如:window.open(url,"_search");
然后,我用两个浏览器打开了这个页面。一个是猎豹浏览器(使用IE兼容模式),一个是IE8。我先用猎豹点击弹出打印预览窗口,数据显示正常。接着又用IE8点击弹出此预览窗口,但死活弹不开,我以为JS出错了,后来才发现,如果我把猎豹中的预览窗口关闭了,IE8点击才会正常弹出预览窗口;或者说,在IE8下点击预览按钮时,猎豹的打印预览页面居然被刷新了。
引申一个问题:平常我们使用浏览器时,为什么我们刷新当前页面,会使当前页面的数据被刷新,而不会把这个浏览器的另一个页面或另一个选项卡中的数据刷新?浏览器是基于什么来作出判断的呢?
引用来自“Track3r”的答案
我又做了下测试:
1.猎豹和IE8反过来,也就是说先用IE8弹出预览窗口,然后再在猎豹中点击预览,弹出的就是IE8的预览窗口了。
2.这个问题应该与猎豹无关,因为我关掉猎豹,分别用IE8和搜狗浏览器测试,以及用IE8和百度浏览器测试发现问题也是一样的。
3.但貌似三种浏览器同时打开又分别能够识别并打开自己的预览窗口,我有点凌乱了(这点我没认真测)
引用来自“Track3r”的答案
引用来自“阿J小虫”的答案
引用来自“Track3r”的答案
引用来自“阿J小虫”的答案
引用来自“Track3r”的答案
我又做了下测试:
1.猎豹和IE8反过来,也就是说先用IE8弹出预览窗口,然后再在猎豹中点击预览,弹出的就是IE8的预览窗口了。
2.这个问题应该与猎豹无关,因为我关掉猎豹,分别用IE8和搜狗浏览器测试,以及用IE8和百度浏览器测试发现问题也是一样的。
3.但貌似三种浏览器同时打开又分别能够识别并打开自己的预览窗口,我有点凌乱了(这点我没认真测)
引用来自“Track3r”的答案
引用来自“阿J小虫”的答案
引用来自“Track3r”的答案
我又做了下测试:
1.猎豹和IE8反过来,也就是说先用IE8弹出预览窗口,然后再在猎豹中点击预览,弹出的就是IE8的预览窗口了。
2.这个问题应该与猎豹无关,因为我关掉猎豹,分别用IE8和搜狗浏览器测试,以及用IE8和百度浏览器测试发现问题也是一样的。
3.但貌似三种浏览器同时打开又分别能够识别并打开自己的预览窗口,我有点凌乱了(这点我没认真测)
不是。这与默认浏览器无关吧。
正是这个测试结果引申出了问题,一个页面刷新,数据却跑到了另一个浏览器的页面。我怀疑是这些山寨浏览器与IE使用了共同的内核引起的。(另外,window.open(url,"_search")中,"_search"这个参数表示:如果已经存在了一个被打开的子窗口,是不会再打开新窗口的,所以,这可能使浏览器想要打开新窗口时,检测到了内存中已经存在IE内核下的此窗口,但不管它是否在当前浏览器内,总之抓到了这个存在的子窗口的引用,然后就把这个子窗口给刷新了)
哥们,新入行的吧
1.第二次打开页面应该是被阻塞了,服务端代码检查下吧
2.引申问题我只能呵呵了