我呢是因为在做app时,测试提出的问题,返回不到上一次点击的ajax的页面,所以就有了这个
反正呢我们是用ajax做的整个订单列表一个页面搞定,,,,
//url js 实现参数无刷新替换
//url -> 当前路径 arg ->参数名 arg_val->参数要替换的值
function changeURLArg(url,arg,arg_val){
var pattern=arg+'=([^&]*)';
var replaceText=arg+'='+arg_val;
if(url.match(pattern)){
var tmp='/('+ arg+'=)([^&]*)/gi';
tmp=url.replace(eval(tmp),replaceText);
return tmp;
}else{
if(url.match('[\?]')){
return url+'&'+replaceText;
}else{
return url+'?'+replaceText;
}
}
}
应用实例
利用ajax点击事件触发替换
替换后
http://www.c.com/index.php/Shop/Member/order_list?type=1
<a οnclick="ajax_order_list(1)"><span>待付款</span></a>
<script type="text/javascript" src="../PublicShop/js/xback.js"></script>
<script type="text/javascript" src="../PublicShop/js/jquery.histroy.js"></script>
function ajax_order_list(otype){
//监控手机的物理返回键,调转自己想返回的页面
window.location.href='__APP__/Shop/Member/index';
});
//更该地址栏参数,防止点击订单详情返回时不是离开的界面的bug
var newUrl=changeURLArg(window.location.href,otype);
var stateObject = {};
var title = "";
history.pushState(stateObject,title,newUrl);
$("#main_order_list").html('');
type=otype;
page=1;
$(".member_order .tit_01 a").removeClass('h');
$(".member_order .tit_01").find('a').eq(otype).addClass('h');
$.ajax({
type: 'post',
url: '__APP__/Shop/Member/ajax_order_list',
data: 'type='+type+'&page='+page+'&n='+Math.random(),
success: function(msg){
if(msg.res=='ok'){
$("#main_order_list").append(msg.msg);
page++;
page_flag=true;
}else{
$("#main_order_list").html('<div style=" line-height:50px; padding-left:30px;">暂无订单</div>');
page_flag=false;
return false;
}
},
dataType: 'json'
});
}