jquery结合url参数更改和字符串替换

时间:2014-03-03 03:42:35

标签: jquery string url redirect parameters

我想重定向用户,但首先我需要通过更改字符串来操作网址:

我这样做:

var url = location.href;        
url=url.replace("featured", "list");    
window.location.href=url;

但在重定向用户之前,我还想将url的get参数更改为特定值。 我在这里读到它应该这样做:

//
location.search = jQuery.query.set("page", 1);
//

我只是不知道在重定向之前如何结合字符串和参数操作,因为位置搜索不考虑我的字符串替换,因为字符串替换不需要location.search既不考虑也不考虑。

基本上,如果用户在这里: http://www.mysite.com/index.php?page=3&mode=featured

我希望他被重定向到: http://www.mysite.com/index.php?page=1&mode=list

这就是他当然的页码。

PS:我不想强迫用户做任何事情。我的观点是使用数据过滤系统,如果它被激活,用户应该处于列表模式并从第1页开始。这就是全部。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以运行GUP功能。 GUP函数在url中获取特定参数。在你的案例'page'和'model'

function gup( name ){
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");  
  var regexS = "[\\?&]"+name+"=([^&#]*)";  
  var regex = new RegExp( regexS );  
  var results = regex.exec( window.location.href ); 
  if( results == null ){    
      return "";  
  }else{    
      return results[1];
  }
}
//this function checks the value of the 'page' and 'mode' parameters
function checkURL(){
    page = gup('page');
    mode = gup('mode');
    //if the page parameter is 1 and the mode parameter is 'featured' then redirect
    if(page == 3 && mode == 'featured){
        window.location.replace('http://www.mysite.com/index.php?page=1&mode=list');
    }
}

希望这能引导你朝着正确的方向前进。

答案 1 :(得分:0)

谢谢coder29。 即使最终不是我需要的,这也是正确的方向。

这是工作脚本:

var regexS = "[\\?&]page=([^&#]*)";  
var regex = new RegExp( regexS ); 
var url = location.href;
var results = regex.exec( url ); 
if( results != null )
{    
    url=url.replace("featured", "list");
    url=url.replace("page="+results[1], "page=1");
}
window.location.href=url;

这就像一个魅力。