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

复制代码 代码如下:
<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;
}

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

JS自定义功能函数实现动态添加网址参数修改网址参数值的更多相关文章

  1. 织梦dedecms自定义功能函数(1):调用body中的图片(可多张)

    前言 岛主会整理或者开发一系列常用功能函数.所有自定义功能函数都是放在\include\extend.func.php文件里. 这次织梦自定义功能函数功能为:独立提取 body字段中(可以是自定义字段 ...

  2. 小生功能贴<一> --- 动态添加应用 具有长按删除功能

    ---恢复内容开始--- 动态添加应用 具有长按删除功能 功能如下图:                (图片显示功能不是你要的,那就默默关闭页面吧) 设计思路: 页面一:用girdview网格显示图标 ...

  3. 利用js给datalist或select动态添加option选项

    <!DOCTYPE html> <html> <head> <title>鼠标点击时加载</title> <script type=& ...

  4. JS 自定义回调函数callback

    1 应用场景:js的异步加载,在get,post,ajax异步加载的时候,可能对应的请求没有完成,这时需要使用请求回来的数据作为参数调用其他函数,这时就需要使用回调函数. 2 回调函数作用:等待函数调 ...

  5. Js 自定义回调函数

    参考 http://mlxnle.iteye.com/blog/1670679 <!doctype html> <html lang="es"> <h ...

  6. js学习(一)-动态添加、修改、删除对象的属性和方法

    //-----------------------js代码--------------------------- function class1(){ } //-------------------- ...

  7. JS 通过系统时间限定 动态添加 select option

    虽然是个简单的效果,还是需要积累一下,记录一下: 在八月一号之后,删除最后一项,新添加2016级 — — 2015级 2014级 2013级 2012级 在六月一号之后,删除最后一项,新添加2016级 ...

  8. ABAP自定义功能函数

    1.实现计算器中阶乘函数 FUNCTION zfun_mm_001. *"---------------------------------------------------------- ...

  9. js自定义回调函数

      JavaScript允许开发人员像传递任何类型的数据一样传递函数,也就是说,函数也是一种数据类型,通过typeof就知道. 例子1: var CallbackFun = function(){ t ...

随机推荐

  1. python编写简单的html登陆页面(3)

    1  在python编写简单的html登陆页面(2)的基础上在延伸一下: 可以将静态分配数据,建立表格,存放学生信息 2  加载到静态数据 3  html的编写直接在表格里添加一组数据就行了 4  V ...

  2. buddyinfo 内存碎片数据采集

    不说了,上工具 #cat buddyinfo.sh #!/bin/sh #*************************************************************** ...

  3. 训练1-T

    一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数.求所有小于等于N的与7无关的正整数的平方和. 例如:N = 8,<= 8与7无关的数包括:1 2 ...

  4. 2016 年 Java 工具和技术的调查:IDEA 已超过

    最近「技术最前线」看到 RebelLabs 做了一次 2016 年 Java 工具与技术的调查,调查报告虽然是 6 月公布的,但数据一点也不过时. 所以「技术最前线」忙会了一中午,写了这篇文章,带大家 ...

  5. rails 安装后调整gem sources 地址

    rails 安装后调整gem sources 地址 使用https会有认证的问题: 移除原有的: gem sources --remove https://rubygems.org/ 查看当前的: g ...

  6. 怎样使windows上的javaWEB项目公布到Centos上

    首先在windows上把项目导入到myeclipse或者eclipse(JEE)版本号上. 然后经过调试,没有错误后. 点击项目,然后右键导出(Export...) 然后选择JEE的war格式,这个是 ...

  7. 使用GitHub来托管Larval框架

    每个新框架都有自己的安装方法laravel 的安装方法有一下几种: (一)   通过下载 Laravel 包安装 (1) 安装Composer  (2) 下载最新Larvel框架  https://g ...

  8. 2015.04.24,外语,读书笔记-《Word Power Made Easy》 12 “如何奉承朋友” SESSION 34

    1.no fatigue indefatigable([indi'fætigәb(ә)l] adj. 不知疲倦的)来自faigue,in-是反义词缀:后缀-able表示able to be,因此ind ...

  9. 最好的PHP框架有哪些

    最好的PHP框架有哪些 首推 Laravel ,其次是 Yii,Laravel 的设计思想以及在工程实践上的支持,超过 ThinkPHP 好几个世代.如果说原生的 PHP 是火枪, ThinkPHP ...

  10. zzulioj--1613--少活一年?(稍微有点坑,水!)

    1613: 少活一年? Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 344  Solved: 70 SubmitStatusWeb Board De ...