Ajax加载页面浏览器前进后/退按钮失效的解决方案
1、使用Ajax局部刷新页面技术的几点不爽之处: 下面例子概述:demo.php 为主页面,通过load(),默认加载demo1.php,当点击页面的“加载内容”链接时,通过load()加载demo2.php,此时,上述三个不爽之处,均已解决。 注意:demo.html中要自己加载上jquery插件和jquery-hashchange插件(链接地址已给出)。 demo.html <html > <script type="text/javascript" src="js/jquery.min.js"></script><!--引入jquery--> <script type="text/javascript" src="js/jquery.ba-hashchange.min.js"></script> <!---引入jquery-hashchange下载地址:http://benalman.com/projects/jquery-hashchange-plugin/ --> <!--引入jquery-hashchange插件--> <body > <meta charset="utf-8"> <a href="#demo2.html/username/uerid">加载内容</a><!--锚链接传值信息。--> <div id = "content"> <!--动态加载区--> </div> <script type="text/javascript"> $(function(){ $(window).hashchange(function(){//响应url地址栏变动消息 var hash = location.hash;//获取锚点值 if(hash != false){ var url_arr = hash.replace(/^#/,'').split('/');//解析锚点中的参数 //加载页面,有参数时,默认采用post方法传递参数, $('#content').load(url_arr[0],{ "username":url_arr[1],"userid":url_arr[2]}); } else { $('#content').load('demo1.html');//默认加载页面。 } })// End window.hashchange() $(window).hashchange(); }) </script> <body> </html> demo2.html <div> <!--参考的 php接收参数代码 $_POST['username']; $_POST['userid']; --> 解析锚点通过,load()加载demo2.html come from demo2.html</div> demo1.html <div> 默认加载页面:come from demo1.html</div> 参考文献: http://xinple.org/?p=410 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |