博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
曾经踩过的坑--浏览器兼容-history
阅读量:5161 次
发布时间:2019-06-13

本文共 952 字,大约阅读时间需要 3 分钟。

1、history

1.1、页面布局:

典型的上中(左右)下布局。主要用的 是frameset和frame。

 

1  2  3  4  5  6  7  8  9 10 11 12 13 

 

1.2、坑的表现(ie浏览器):

    IE中点击左边栏选项,右边的content页面相应改变。在content中点击超链接改变content的src,通过history.back()返回上一个content的界面失败(IE浏览器下)。

    操作流程:

     点击左边栏选项1,则content变为c1页面。然后点击选项2,则对应c2页面。

     此时在c2中放置超链接,改变name="right"的frame页面内容,c2变为了c3.但是点击浏览器的返回箭头 -->,返回的是c1界面而非c2.同理,在c3界面上放置了一个返回button。button添加click事件:history.back().此时点击返回按钮时也会返回到错误的c1界面。

1.3、对坑的猜想

history不同浏览器对其记录产生认定方式不同。

我猜IE浏览器对这个frame中通过超链接改变frame内容的方式不予记录,相当于history当前没有c2跳到c3的记录,认为当前处于c2状态。因而导致了history.back时跳转到了c1.

查找资料所得:http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/ 这个是一个例子,也是ie89下的history异常导致的问题。https://github.com/cowboy/jquery-hashchange/issues/17  这个上面有同样遇到这个问题的,只是暂时没找到解决方法。

真正的原因:http://msdn.microsoft.com/en-us/library/cc288209%28v=vs.85%29.aspx 。在iframes或者frame里面,不会触发修改location.hash.因此没记录到history中(bingo ,猜对了~~~)。

 

后续完善~~

 

转载于:https://www.cnblogs.com/luckyflower/p/4201273.html

你可能感兴趣的文章
jQuery 显示加载更多
查看>>
代理模式
查看>>
Confluence 6 系统运行信息中的 JVM 内存使用情况
查看>>
Confluence 6 升级以后
查看>>
用JS实现版面拖拽效果
查看>>
二丶CSS
查看>>
《avascript 高级程序设计(第三版)》 ---第二章 在HTML中使用Javascript
查看>>
JS一些概念知识及参考链接
查看>>
TCP/IP协议原理与应用笔记24:网际协议(IP)之 IP协议的简介
查看>>
SAP HANA开发中常见问题- 基于SAP HANA平台的多团队产品研发
查看>>
游戏中的心理学(一):认知失调有前提条件
查看>>
WHAT I READ FOR DEEP-LEARNING
查看>>
【Ruby】Ruby在Windows上的安装
查看>>
Objective C 总结(十一):KVC
查看>>
BZOJ 3747 洛谷 3582 [POI2015]Kinoman
查看>>
vue实战(7):完整开发登录页面(一)
查看>>
[转载]mysql的left,right,substr,instr截取字符串,截取
查看>>
Visual Studio自定义模板(二)
查看>>
【Mood-20】滴滤咖啡做法 IT工程师加班必备 更健康的coffee 项目经理加班密鉴
查看>>
读《构建之法-软件工程》第四章有感
查看>>