`
lijingf117
  • 浏览: 13030 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

各个主流浏览器中,history.back()操作的异同点

阅读更多
测试浏览器:IE8

动作1:
A画面:查询画面

   ↓submit

B画面:查询结果画面

   ↓history.back()

A画面:查询画面 (查询输入值还在)


动作2:
A画面:查询画面

   ↓window.open()

C画面(pop画面) 比如说,项目的值是通过弹出一个表,然后选择值来作为输入

   ↓window.close() 输入完后,关闭pop画面,返回查询画面

A画面:查询画面

   ↓submit

B画面:查询结果画面

   ↓history.back()

A画面:查询画面 (查询输入值没了,原因是页面刷新了,所以值都回到默认值)



测试浏览器:Firefox,google chrome, safari

动作2:
A画面:查询画面

   ↓window.open()

C画面(pop画面) 比如说,项目的值是通过弹出一个表,然后选择值来作为输入

   ↓window.close() 输入完后,关闭pop画面,返回查询画面

A画面:查询画面

   ↓submit

B画面:查询结果画面

   ↓history.back()

A画面:查询画面 (查询输入值还在)



个人判断:动作2的情况下,IE使用history.back()按钮时,因为中间过程中产生了一个子画面(C画面)的过程,history.back()估计是取到子画面的内容了,而没有能够取到A画面过去的纪录,所以返回A画面的时候,页面刷新了。 而其他的浏览器的测试结果,也许是在history的处理机制上和IE不同,当中间打开了一个新的子画面,但主画面的纪录仍然能通过history.back()按钮来获取。

从url返回和history.back()取历史纪录两方面来看,感觉IE似乎url和历史纪录不一致。
(返回了A画面,但却去取C画面的历史纪录)不知道IE这样做有什么特别之处。。。










分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics