站长家园(原代码之家)(www.adminjie.com)网站源码,微信源码,游戏源码,商业源码分享平台。
当前位置:网站首页 技术文章 网络编程 正文

ajax为什么不能后退

时间:2021-12-19 [网络编程]作者:fabuyuan 浏览:7 次

因为ajax与浏览器的history.back()与forward()不友好,不能前进与后退,其解决办法就是根据当前URL地址中的查询内容让对应的菜单执行Ajax载入即可。

ajax为什么不能后退  2

本文操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

ajax为什么不能后退?解决ajax无法后退问题实例

都知道ajax有一个明显的缺点就是与浏览器的history.back()与forward()不友好,不能前进与后退。

实例地址:解决ajax无法后退问题实例

解决方法:

ajax为什么不能后退  2ajax为什么不能后退  2

window.history实例

在console里面打印出window.history的实例,可以查看相关对象的原型。

length:length为浏览记录队列长度,由于这个页面是新打开的,队列中只有当前页面链接相关信息,其值为1

state:

pushState:就是window.history.pushState();

replaceState:就是window.replaceState();

用法:

window.history.pushState({status: 0} ,'' ,'?data=1');

ajax为什么不能后退  2ajax为什么不能后退  2

改变后的浏览器地址

这里需要注意的是,如果实在本地运行的话,在ie和火狐上都是可以完美运行的,但是现在新版的谷歌会报错,这是因为谷歌的安全机制问题。如果代码放在服务器上的话应该是没有这个错误的。

ajax为什么不能后退  2ajax为什么不能后退  2

所以这里的解题思路:

1.每次手动点击左侧的菜单,我将Ajax地址的查询内容(?后面的)附在demo HTML页面地址后面,使用history.pushState塞到浏览器历史中。

2.浏览器的前进与后退,会触发window.onpopstate事件,通过绑定popstate事件,就可以根据当前URL地址中的查询内容让对应的菜单执行Ajax载入,实现Ajax的前进与后退效果。

3.页面首次载入的时候,如果没有查询地址、或查询地址不匹配,则使用第一个菜单的Ajax地址的查询内容,并使用history.replaceState更改当前的浏览器历史,然后触发Ajax操作。

推荐学习:《ajax视频教程

以上就是ajax为什么不能后退的详细内容,更多请关注站长家园其它相关文章!

本文标签:  ajax

转载请注明来源:ajax为什么不能后退

本文永久链接地址:https://www.adminjie.com/post/6644.html

免责声明:
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

附:
二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,若有侵犯你的权益请:提交版权证明文件到邮箱 2225329873#qq.com(#换为@) 站长会进行审查之后,情况属实的会在三个工作日内为您删除。

  • 站长家园(原代码之家)会员升级
  • 最新文章
    • centos7 终端中文乱码怎么办

      centos7 终端中文乱码怎么办

      centos7终端中文乱码的解决办法:1、查看服务器编码;2、查看终端xshell编码;3、设置“exportLANG="zh_CN.UTF-8"”;4、重启...

    • html5标签head和header有什么区别

      html5标签head和header有什么区别

      区别:1、head标签用于定义文档头部,它是所有头部元素的容器,而header标签用于定义文档的页眉(介绍信息);2、浏览器都支持head标签,而旧版本浏览器均...

    • docker可以装在虚拟机上吗

      docker可以装在虚拟机上吗

      docker可以装在虚拟机上;docker容器运行在虚拟机或者物理机上都可以,无论是虚拟机还是物理机,都是硬件和基础设施的一种交付方式,而docker容器主要就...

    • centos是linux系统吗

      centos是linux系统吗

      centos是linux操作系统的一个版本,centos主要分为两个版本:1、CentOSLinux版,该Linux版每两年发行一次;2、CentOSStr...

    • 搜索引擎对html5友好吗

      搜索引擎对html5友好吗

      搜索引擎对html5友好,搜索引擎蜘蛛能够更加轻易的抓取和索引使用Html5标准网站的内容。html5有利于搜索引擎抓取和收录网站更多的内容,对SEO很友好,可...

  • 买服务器送会员
  • 热门文章
  • 买服务器送会员