用jquery的load方法通过ajax加载的页面,如何实现前进和后退?浏览器前进和后退功能失效了

 我来答
cainiaokan
推荐于2018-04-21 · TA获得超过2917个赞
知道小有建树答主
回答量:651
采纳率:66%
帮助的人:611万
展开全部
这个默认是不可能实现的。
因为jquery的load方法也是通过ajax进行加载的。
页面并没有进行跳转。浏览器上的url地址也没发生变化。
前进后退是起不到你想要的作用的。

对于这种纯粹ajax开发的web应用。
要实现这种效果,只能使用hash
hash指的就行url地址后面的#号以及后面的部分
利用onhashchange事件,检测到hash变化后。然后你再用js触发相应的变化。
从而实现页面间的路由。
但是onhashchange并不被所有浏览器支持,因此你需要针对不支持onhashchange事件的浏览器
自行实现。
具体内容,网上教程很多。
alex8046
2012-11-20 · TA获得超过380个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:137万
展开全部
ajax是局部刷新,不刷新整个页面的, 所以前进,后退,还有刷新几个按钮都会异常,
我以前是用插件解决的,你可以搜索下 jquery.history.js插件
追问
我知道是用这个插件,但jquery.history.js插件具体怎么使用呢?,我是将内容通过jquery的load方法加载的
追答
真心没找到以前的代码,真不好意思。
不过这个插件不是对所有浏览器都适用的,ie6,ie7和ie8的兼容模式下就会有问题。
原理是利用形如 main#page 的 url #page 被浏览器认为是锚点 。
因此,当我们点击一个链接,这个链接改变页面的锚点部分,但是实际上当锚点变化时,页面不刷新,但却可以产生前进/后退的记录。

http://www.dotblogs.com.tw/grence/archive/2011/01/05/20594.aspx 这理由个实现的代码

不知道能不能对你有帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
b314170122
推荐于2016-04-30 · TA获得超过1082个赞
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:182万
展开全部
我可应很负责任的告诉你:ajax加载页面是无法实现浏览器前进和后退功能的,

因为你是直接通过jq 将当前页面的内容全给替换掉了,而页面并没有跳转。

不过不是所有事都是绝对的。告诉你一个比较笨但是有比较实用的方法。

就是通过iframe轻松解决问题。

首先,你的页面需要一个隐藏的iframe,且iframe的src对应的是一个任意的html,jsp都行。

当你ajax加载页面之前,用jq将当前的页面内容给加载到iframe中去,这个时候,你的iframe中的html元素,就是你当前页面的html元素没错把?这时候再加载你需要ajax加载的页面。注意,加载页面的时候千万不要把这个iframe给覆盖掉了。。。

再写一个键盘后退按键的js监控方法,当按下backspace的时候,将iframe的页面元素加载出来覆盖当前页面,在覆盖之前记得要把现在的页面元素覆盖到iframe中,因为你还有一个前进的操作

前进的操作也是大同小异,说白了就是父页面元素与iframe中的页面元素进行对换的操作

抱歉,语言组织能力有限,希望对你有所帮助,或者有所启发~!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式