jQuery load 局部刷新
程序员文章站
2022-06-17 11:54:19
...
用法
运行环境
jQuery的load()
方法跟jQuery AJAX
一样都需要用到服务器端来支持,所以你会发现如果你只是写了静态页面并直接双击运行,浏览器会给你一个XMLHttpRequest cannot load
的错误,你需要把代码放在服务器上才能运行。
深入使用
如果单单是使用load()
方法,你就会发现,在ajax请求中,不能更新地址栏,地址栏上的“前进”和“后退”按钮就失效了,带来了另外一种糟糕的用户体验。
解决方案有三种,分别是(详情使用请移步:Ajax保留浏览器历史的解决方案):
使用
window.Onhashchange
事件;使用
jQuery.History.js
第三方插件;使用
jquery.ba-hashchange.js
第三方插件。
使用方案
由于我需要兼容ie6
以上的浏览器,加上jQuery.History.js
不再维护,所以我选择第三种方案来解决以上问题。期间我遇到了以下问题:
在jquery 1.9以上版本中,控制台会提示
msie
找不到的问题,原因是browser
属性已经被移除
解决方法:
官方建议使用 Modernizr 库
在引入 jquery 和 jquery.ba-hashchange.js 代码期间引入以下js代码
jQuery.browser={};(function(){jQuery.browser.msie=false; jQuery.browser.version=0;if(navigator.userAgent.match(/MSIE ([0-9]+)./)){ jQuery.browser.msie=true;jQuery.browser.version=RegExp.$1;}})();
转载于:https://my.oschina.net/cobish/blog/527499
上一篇: 吓老子一跳,我还以为抢鸡蛋呢!
下一篇: vue 实现全选全不选的示例代码