永利皇宫JavaScript UCR-VL参数读取革新版

无论是前端开荒依然后台设计,相当多时候开采职员都须求取安妥前或指标网站的有关音讯。这些已有现存的放到对象属性能够直接调用了(上面是获得当前页面包车型大巴参阅代码)

给我们看一下自家的代码 只要把这个代码嵌入到页面文件就可以

上面是本子之家一贯也在用的三种方式

复制代码 代码如下:

例一
选拔正则表明式来获得

复制代码 代码如下:

<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>

复制代码 代码如下:

<script language=”javascript” type=”text/javascript”>
function request(paras){
var url = location.href;
var paraString =
url.substring(url.indexOf(“?”)+1,url.length).split(“&”);
var paraObj = {}
for (i=0; j=paraString[i]; i++){
paraObj[j.substring(0,j.indexOf(“=”)).toLowerCase()] =
j.substring(j.indexOf(“=”)+1,j.length);
}
var returnValue = paraObj[paras.toLowerCase()];
if(typeof(returnValue)==”undefined”){
return “”;
}else{
return returnValue;
}
}
//下面是应用代码
var theurl
theurl=request(“url”);
if (theurl!=”){
location=theurl
}
</script>

但临时我们须要转移如今网址的参数/参数值,那时候大家会什么管理呢?一般应当都会先通过得到具有参数的音讯,然后再依附实际要求来对某一参数进行修改。没有错!依据这一法规,前日就给我们大饱眼福一下民用在开采中封装的效益函数。
//=============== 退换网站的参数值 ================

var LocString = String(window.document.location.href);
function getQueryStr(str) {
var rs = new RegExp(“(^|)” + str + “=([^&]*)(&|$)”,
“gi”).exec(LocString), tmp;
if (tmp = rs) {
return tmp[2];
}
// parameter cannot be found
return “”;
}

上边是正则函数
用Javascript正则达成url链接的分析类
//www.jb51.net/article/15000.htm

复制代码 代码如下:

调用方法

下边包车型客车代码有一点点乱
/* 《JavaScript权威指南》介绍的更轻便的取 UCR-VL
参数的法子,不用正则表明式,用二回巡回。叁次性重回八个对象的功利是只须要调用一次此函数,参数和值对能够存在一个对象里,未来再取其余参数的值就毫无再调用此函数了,只要取对象的品质就行了。

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){
UEscortL = 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;
}

document.getElementById(“user”).value = getQueryStr(“user”);
document.getElementById(“password”).value = getQueryStr(“password”);
document.getElementById(“sysno”).value = getQueryStr(“sysno”);

* 用法:
* var args = getArgs( ); // 从 U奥迪Q5L 解析出参数
* var q = args.q || “”; //
借使定义了某参数,则运用其值,不然给它三个私下认可值
* var n = args.n ? parseInt(args.n) : 10;
*/
var getArgs = function ()
{
var args = new Object( ); //声多美滋个空对象
var query = window.location.search.substring(1); // 取查询字符串,如从
中截出
a1=v1&a2=&a3=v3。
var pairs = query.split(“&”); // 以 & 符分开成数组
for(var i = 0; i < pairs.length; i++) {
var pos = pairs[i].indexOf(‘=’); // 查找 “name=value” 对
if (pos == -1) continue; // 若不成对,则跳出循环继续下部分
var argname = pairs[i].substring(0,pos); // 取参数名
var value = pairs[i].substring(pos+1); // 取参数值
value = decodeURIComponent(value); // 若需要,则解码
args[argname] = value; // 存成对象的四个属性
}
return args; // 再次来到此目的
}

实际这意义在实际应用中很好使,在分页跳转、多规格查询检索等效用中更为卓越。

例二
选取split函数来按参数切成数组

它的崛起亮点便是先后只用实施一遍提取操作,未来再重复取参数值,都并非再实施顺序了。取
UCR-VL 参数依旧那样比较便利易行,又好理解。

您或者感兴趣的篇章:

  • js中对函数设置暗中同意参数值的3种方法
  • javascript贯彻壹个数值加法函数
  • js
    数值项指标格式化函数代码
  • 详解js中Number()、parseInt()和parseFloat()的区别
  • JavaScript
    ParseFloat()方法
  • javascript的parseFloat()方法精度难题查究
  • javascript中的parseInt和parseFloat区别
  • js中parseFloat(参数1,参数2)定义和用法及注意事项
  • js中string和number类型互调换另一边手艺(分享)
  • JavaScript中Number对象的toFixed()
    方法详解
  • 详解JS转变数值函数Number()、parseInt()、parseFloat()

复制代码 代码如下:

下边是本人以前见报的“不用循环”但“某个太复杂”的本子:

<script>
urlinfo=window.location.href; //获取当前页面包车型客车url
len=urlinfo.length;//获取url的长度
offset=urlinfo.indexOf(“?”);//设置参数字符串开头的地方
newsidinfo=urlinfo.substr(offset,len)//抽取参数字符串
这里会赢得临近“id=1”这样的字符串
newsids=newsidinfo.split(“=”);//对获得的参数字符串依据“=”实行划分
newsid=newsids[1];//获得参数值
alert(“您要传送的参数值是”+newsid);
</script>

复制代码 代码如下:

而是必须要记得 这么些点子只是针对性含有参数的url有用
,若是对方用了POST方法传递参数,
url中是不会含有参数的之所以这么些技艺只对GET方法或然钦定了参数的url有用哦

//不用循环纯用正则完结从 U途乐L 中取参数的值。替代循环的主题本领是字符串的
replace() 方法能够用函数作第二参数,按用户定义的措施去替换。
//若有此参数名但无值,则赶回空字符串;若无此参数名,再次来到 undefined。
var getArg = function(argname)
{
var str = location.href;
var submatch;
//先从 URubiconL 中收取问号和井口与中间的询问字符串,如从
中截出
a1=v1&a2=&a3=v3。
//问号是方式的特殊字符,所以要写成 \?;井号可有可无,所以方式结尾是
#?
if (submatch = str.match(/\?([^#]*)#?/))
{
//取到捕捉的子相称形如 a1=v1&a2=&a3=v3,在后面加个 & 做成法则的
&a1=v1&a2=&a3=v3 造福下一步替换
var argstr = ‘&’+submatch[1];
//做个替换用的函数,把找到的每组形如 &a1=v1 替换到 a1:”v1″,
那样的靶子定义用的性质注明
var returnPattern = function(str)
{
//$1 和 $2 代表捕捉到的第三个和第四个子相称,必须用在字符串里
return str.replace(/&([^=]+)=([^&]*)/, ‘$1:”$2″,’);
}
//实施多少个大局的正则替换,第二参数就是刚刚定义的轮换函数,把
a1=v1&a2=&a3=v3 替换到 a1:”v1″,a2:””,a3:”v3″,
argstr = argstr.replace(/&([^=]+)=([^&]*)/g, returnPattern);
//最终再实施贰个目的的宣示,必要形如 var retvalue =
{a1:”v1″,a2:””,a3:”v3″};
的靶子评释,而刚刚替换完的字符串结尾还大概有个逗号,把最后的逗号用 substr
截掉就能够
eval(‘var retvalue = {‘+argstr.substr(0, argstr.length-1)+’};’);
//今后就赢得了三个目的,U君越L
中每种参数名是其属性名,参数值是呼应的属性值
return retvalue[argname];
}
}

下边看一个整机的实例

//测试
document.write(‘a1=’+getArg(‘a1′)+’, a2=’+getArg(‘a2′)+’,
a3=’+getArg(‘a3’));

aa.htm是参数输渗入渗出分界面
bb.htm是参数接收管理分界面
aa.htm

您恐怕感兴趣的小说:

  • js获取url参数值的三种方法
  • JS
    UENVISIONL传普通话参数引发的乱码问题
  • JS获取UKugaL中参数值(QueryString)的4种办法分享
  • javascript/jquery获取地址栏url参数的不二等秘书籍
  • js UQX56L参数的拼接方法比较
  • 在JavaScript中获得央浼的UTiggoL参数
  • js修改地址栏U奥迪Q7L参数解决url参数难点
  • JavaScript
    Base64编码和平解决码,实现ULacrosseL参数字传送递。
  • javascript
    获取url参数的正则表明式(用来获得有些参数值)
  • js获取url中的参数且参数为汉语时经过js解码
  • js完结将当选内容分享到微博或Tencent博客园
  • JS完毕仿Tencent天涯论坛无刷新删除微博功用代码
  • JS
    仿Tencent公布今日头条的效应代码
  • javascript兑现的仿TencentQQ窗口抖动作效果果代码
  • js获取腾讯录像ID的主意

复制代码 代码如下:

 <html>
  <head>
  </head>
  <body>
  <script>
  function submit()
  {
  var input1 = document.getElementById(“inputid”);
  window.open(“bb.htm?inputStr=” + input1.value);//传入参数
  }
  </script>
  <input type = “text” id = “inputid”>
  <input type = “button” onclick = “submit()” value = “提交”>
  </body>
  </html>
  bb.htm:
  <html>
  <head>
  <script>
  //得到参数的方法
  var request =
  {
  QueryString : function(val)
  {
  var uri = window.location.search;
  var re = new RegExp(“” +val+ “=([^&?]*)”, “ig”);
  return ((uri.match(re))?(uri.match(re)[0].substr(val.leng
th+1)):null);
  }
  }
  </script>
  </head>
  <body>
  <script>
  //调用艺术猎取参数
  var rt = request.QueryString(“inputStr”);
  alert(rt);
  </script>
  </body>
  </html>

bb.htm

复制代码 代码如下:

<html>
  <head>
  <title>test</title>
  <meta http-equiv=”Content-Type” content=”text/html;
charset=gb2312″>
  <SCRIPT LANGUAGE=”JavaScript”>
  <!–
  var request = {
  QueryString : function(val) {
  var uri = window.location.search;
  var re = new RegExp(“” +val+ “=([^&?]*)”, “ig”);
  return ((uri.match(re))?(uri.match(re)[0].substr(val.leng
th+1)):null);
  }
  }
  var a = request.QueryString (“a”);
  var b = request.QueryString (“b”);
  var c = request.QueryString (“c”);
  if ((a != null)){a=a} else{a=”参数A空”}
  if ((b != null)){b=b} else{b=”参数B空”}
  if ((c != null)){c=c} else{c=”参数C空”}
  document.writeln(“参数A: ” + a);
  document.writeln(“<br>参数B: ” + b);
  document.writeln(“<br>参数C: ” + c);
  //–>
  </SCRIPT>
  </head>
  <body>
  <form name=”form1″ action=”?”>
  请输入参数值:<br>
  <SCRIPT LANGUAGE=”JavaScript”>
  document.writeln(“A:<input type=’text’ name=’a’
value='”+a+”‘><br>”);
  document.writeln(“B:<input type=’text’ name=’b’
value='”+b+”‘><br>”);
  document.writeln(“C:<input type=’text’ name=’c’
value='”+c+”‘><br>”);
  </SCRIPT>
  <input type=”submit” name=”Submit” value=”提交参数查观效果”>
  </form>
  </body>
  </html>

您大概感兴趣的文章:

  • js setTimeout
    参数字传送递使用介绍
  • JavaScript
    Base64编码和平解决码,落成U途达L参数字传送递。
  • JS的参数字传送递示例介绍
  • 三种参数字传送递的款式——UOdysseyL,超链接,js,form表单
  • Js从头学起(基本数据类型和引用类型的参数字传送递详细解析)
  • JavaScript函数的调用以及参数字传送递
  • javascript自定义函数参数字传送递为字符串格式
  • javascript达成html页面之间参数字传送递的八种办法实例解析
  • JS
    参数字传送递的实际上选取代码深入分析
  • JavaScript函数参数的传递形式详解

发表评论

电子邮件地址不会被公开。 必填项已用*标注