使用Javascript获得网页中通过GET方法提交的参数
下面我将写出一个函数,用来获取GET方法提交的参数
function getParameter(parameterName)
{
var string = window.location.search;
var indexStart = string.indexOf(parameterName+"=");
if(indexStart==-1)
return false;
var result = string.slice(indexStart+parameterName.length+1);
var indexEnd = result.indexOf("&");
if(indexEnd!=-1)
result = result.slice(0,indexEnd); return decodeURI(result);
}
完整代码
下面我将一步步讲解每步的作用。
假设我们的URL是www.****.com?a=1&bc=23&d=5,而我们想要取bc的值
var string = window.location.search;
这一步,将URL中“?”后面的字符串,也就是"a=1&bc=23&d=5"保存在变量string中。
var indexStart = string.indexOf(parameterName+"=");
if(indexStart==-1)
return false;
这一步,将寻找"bc="在string中首次出现的位置,如果没有找到"bc=",那么将结束函数并返回false。
var result = string.slice(indexStart+parameterName.length+1);
这次,我们将"bc="后面的所有字符都保存在result变量中。当然这只是我们最终结果的开头部分。
var indexEnd = result.indexOf("&");
if(indexEnd!=-1)
result = result.slice(0,indexEnd);
这次我们来寻找result中结束的地方,通常来讲都是都是"&"符号作为结束的地方。当然,如果本身就是在string中作为最后一个参数,比如"d=5"这个,那么我们之前的result就已经是正确的结果了,不需要这一步了。
return decodeURI(result);
最后我们返回result作为最终的结果。由于如果参数中又中文的话,会出现乱码,所以我们在这里加上一个decodeURI函数来返回正确的中文字符。
好了,到这里,我们就已经大功告成了!
使用Javascript获得网页中通过GET方法提交的参数的更多相关文章
- JavaScript在网页中使用以及注意事项
<script>标签的解析<script>xxx</script>这组标签,是用于在 html 页面中插入 js 的主要方法.它主要有以下几个属性:charset: ...
- 简谈 JavaScript、Java 中链式方法调用大致实现原理
相信,在 JavaScript .C# 中都见过不少链式方法调用,那么,其中实现该类链式调用原理,大家有没有仔细思考过?其中 JavaScript 类库:jQuery 中就存在大量例子,而在 C# 中 ...
- 【JavaScript】js中的call方法
moziila官方文档链接:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Funct ...
- 类中定义的方法,self参数
class a(): def __init__(self): self.aa = 5 def test(): print "haha" a.test() self指的是对象本身,而 ...
- JavaScript在页面中的引用方法
现在前端开发越来越流行,框架也越来越多,像ExtJs.JQuery.Bootstrap等.虽然入行这么多年,但是感觉自己在前端方面还是存在基础不牢的地方,特别是CSS和JS.因此最近打算重新阅读这方面 ...
- 聊聊JavaScript在工作中常用的方法(一)
一.字符串转数组(split方法) 废话少说,直接上代码: //例子1 var str="abc,def,ghi"; var strArray=str.split(",& ...
- javascript关闭网页的几种方法
js关闭当前页面(窗口)的几种方式总结,需要的朋友可以参考一下: 1. 不带任何提示关闭窗口的js代码 <a href="javascript:window.opener=null;w ...
- HTML5 CSS JavaScript在网页中扮演的角色
HTML (content layer) CSS (presentation layer) JavaScript (Interactive layer) 参考链接: [1] https://www.y ...
- 使用javaScript解决asp.net中mvc使用ajax提交数组参数的匹配问题
想到在asp.net的mvc中如果使用ajax向服务端传递参数时如果参数是一个类或者是个数组(或List集合)以及更复杂的对象时,服务端总是会发生取不到值的情况,当然网上也有很多解决的例子,但都是在服 ...
随机推荐
- 【暑假】[深入动态规划]UVa 10618 Fun Game
UVa 10618 Fun Game 题目: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=36035 思路: 一圈人围坐 ...
- 3.1 全局存储带宽与合并访问 -- Global Memory(DRAM) bandwidth and memory coalesce
全局存储带宽(DRAM) 全局内存是动态随机访问的方式访问内存.我们希望访问DRAM的时候非常快,实际情况是DRAM中出来的数据非常非常慢,这就好比,理想状态是泄洪,水倾巢而出,气势宏伟,实际取水却像 ...
- HDU-4622 Reincarnation 后缀数组 | Hash,维护和,扫描
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4622 题意:给一个字符串,询问某字串的不同字串的个数. 可以用后缀数组来解决,复杂度O(n).先求出倍 ...
- AlertDialog
1.AlertDialog点击时不自动消失 //在setPositiveButton和setNegativeButton根据自己的逻辑处理,大概代码如下 if(validate){//验证通过自动消失 ...
- A Tour of Go Map literals
Map literals are like struct literals, but the keys are required. package main import "fmt" ...
- [置顶] MapReduce 编程之 倒排索引
本文调试环境: ubuntu 10.04 , hadoop-1.0.2 hadoop装的是伪分布模式,就是只有一个节点,集namenode, datanode, jobtracker, tasktra ...
- 解决SenTestingKit/SenTestingKit.h: No such file or directory
在一个iOS项目中引入了单元测试,感觉项目间的依赖关系有些乱,就建了一个新的Project,再把原来的.h和.m加进去,编译时竟然出现“SenTestingKit/SenTestingKit.h: N ...
- hdu3589 Jacobi symbol(二次剩余 数论题)
本题的注意点:n=p1*p2*p3......Pm 解法:直接利用公式a^((p-1)/2)=(a/p)mod p 即可求解. #include<stdio.h> #include< ...
- Codeforces Round #322 (Div. 2) B. Luxurious Houses 水题
B. Luxurious Houses Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/581/pr ...
- 【剑指Offer学习】【全部面试题汇总】
剑指Offer学习 剑指Offer这本书已经学习完了.从中也学习到了不少的东西,如今做一个总的文件夹.供自已和大家一起參考.学如逆水行舟.不进则退.仅仅有不断地学习才干跟上时候.跟得上技术的潮流! 全 ...