zoukankan      html  css  js  c++  java
  • JS自定义功能函数实现动态添加网址参数修改网址参数值

    无论是前端开发还是后台设计,很多时候开发人员都需要获取当前或目标网址的相关信息。这个已有现成的内置对象属性可以直接调用了(下面是获取当前页面的参考代码)

    复制代码 代码如下:

    <script type="text/javascript">
    thisURL = document.URL;
    thisHREF = document.location.href;
    thisSLoc = self.location.href;
    thisDLoc = document.location;
    strwrite = " thisURL: [" + thisURL + "]<br>"
    strwrite += " thisHREF: [" + thisHREF + "]<br>"
    strwrite += " thisSLoc: [" + thisSLoc + "]<br>"
    strwrite += " thisDLoc: [" + thisDLoc + "]<br>"
    document.write( strwrite );
    </script>


    但有时候我们需要改变目前网址的参数/参数值,这时候大家会如何处理呢?一般应该都会先通过获取所有参数的信息,然后再根据实际需求来对某一参数进行修改。没错!根据这一原理,今天就给大家分享一下个人在开发中封装的功能函数。
    //=============== 改变网址的参数值 ================

    复制代码 代码如下:

    function ChangeURLParm(Turl,Parm,PValue,ClearParm){
    //Turl: 网址
    //Parm: 参数
    //PValue: 参数值
    //ClearParm: 要清除的参数
    var URL,Parms,ParmsArr,IsExist;
    var NewURL = Turl;//window.location.href
    IsExist = false;
    with(Turl){
    if(indexOf('?')>0){
    URL = substr(0,indexOf('?'));//不包含参数
    Parms = substr(indexOf('?')+1,length);//参数
    }
    else{
    URL = Turl;
    Parms = '';
    }
    }
    if (Parms!=''){
    var i;
    ParmsArr = Parms.split("&");
    for(i=0;i<=ParmsArr.length-1;i++){
    if (String(Parm).toUpperCase()==String(ParmsArr[i].split("=")[0]).toUpperCase()){//原来有参数Parm则改变其值
    ParmsArr[i] = Parm + "=" + PValue;
    IsExist = true;
    if (String(ClearParm) ==""){
    break;
    }
    }
    else if ( (String(ClearParm)!="") && (String(ClearParm).toUpperCase()==String(ParmsArr[i].split("=")[0])).toUpperCase() ){//去掉参数ClearParm的值
    ParmsArr[i] = ClearParm + "=";
    }
    }

    for(i=0;i<=ParmsArr.length-1;i++){
    if(i==0){
    Parms = ParmsArr[i];
    }
    else{
    Parms = Parms + "&" + ParmsArr[i];
    }
    }
    NewURL = URL + "?" + Parms;
    if (!IsExist){
    NewURL = NewURL + "&" + Parm + "=" + PValue;
    }
    }
    else{
    NewURL = URL + "?" + Parm + "=" + PValue;
    }
    return NewURL;
    }


    其实这功能在实际应用中很好使,在分页跳转、多条件查询搜索等功能中尤为突出。

  • 相关阅读:
    HDU 4681 STRING dp+暴力。
    HDU 4669 Mutiples on a circle 不知道该归为哪一类。
    poj 3411 Paid Roads很水的DFS
    poj 1724 ROADS 很水的dfs
    STL学习笔记(转,还是比较全的)
    4666 Hyperspace stl
    poj3308 Paratroopers 最大流 最小点权覆盖
    poj 3114 Countries in War
    2013 Multi-University Training Contest 4 部分解题报告
    2013 Multi-University Training Contest 3 部分解题报告
  • 原文地址:https://www.cnblogs.com/dingyufenglian/p/4826863.html
Copyright © 2011-2022 走看看