
电 话:0
手 机:0
联系人:刘先生
E_mail:2074917417@qq.com
地 址:成都市金牛区
Javascript查询字符串location.search()使用方法介绍
首先我们介绍location对像,location是最有用的BOM对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能。事实上,location对象是很特别的一个对象,因为它既是window对象的属性,也是document对象的属性;换句话说,window.location和document.location引用的是同一个对象。location对象的用处不只表现在它保存着当前文档的信息,还表现在它将URL解析为独立的片段,让开发人员可以通过不同的属性访问这些片段。南昌网络公司技术人员将通过下表列出了location对象的所有属性(注:省略了每个属性前面的location前缀)。
| 属性名 | 例子 | 说明 |
| hash | "#contents" | 返回URL中的hash(#号后面跟零或多个字符),如果URL中不包含散列,则返回空字符串. |
| host | "www.huicuiwang.cn:80" | 返回服务器名称和端口号(如果有) |
| hostname | "www.jxhb.cn" | 返回不带端口号的服务器名称 |
| href | "http://www.huicuiwang.cn" | 返回当前加载页面的完整URL.而location对象的toString()方法也返回这个值. |
| pathname | "/NewsList/" | 返回URL中的目录和(或文件名) |
| port | "8080" | 返回URL中的指定的端口号,如果URL中不包含端口号,则这个属性返回空字符串 |
| protocol | "http:" | 返回页面使用的协议,通常是http:或https |
| search | "?id=5" | 返回URL的查询字符串.这个字符串以问号开头. |
? ?虽然通过上面的属性可以访问到location对象的大多数信息,但其中访问URL包含的查询字符
串的属性并不方便。尽管location.search返回从问号到URL末尾的所有内容,但却没有办法逐个访问其中的每个查询字符串参数。为此,南昌网站设计公司技术人员可以像下面这样创建一个函数,用以解析查询字符串,然后 返回包含所有参数的一个对象:
? ?? ?function getQueryStringArgs(){
//取得查询字符串并去掉开头的问号
? ?? ?var qs=(location.search.length>0 ? location.search.substring (1) :"");
//保存数据的对象
? ?? ?var args=();
//取得每一项
? ?? ?varltems=qs .split(“&");
? ?? ?var item=null.
? ?? ?name=null.
? ?? ?value=null;
//逐个将每一项添加到args对象中
? ?? ?for (var i=0;i
? ?? ?name=decodeURIComponent (item[0]);
? ?? ?value=decodeURIComponent (item [1]);
? ?? ?args[name] =value;
? ?? ?}
? ?? ?return args;
? ?这个函数的第一步是先去掉查询字符串开头的问号。当然,前提是location.search中必须要包含一或多个字符。然后,所有参数将被保存在args对象中,该对象以字面量形式创建。接下来,根据和号(&)来分割查询字符串,并返回name=value格式的字符串数组。下面的for循环会迭代这个数组,然后再根据等于号分割每一项,从而返回第一项为参数名,第二项为参数值的数组。再使用decodeURIComponent()分别解码name和value(因为查询字符串应该是被编码过的)。最后,将name作为args对象的属性,将value作为相应属性的值。下面给出了使用这个函数的示例:
//假设查询字符串是?q=j avascript&num=10
? ?? ?var args=getQueryStringArgs();
? ?? ?alert(args['q"]);//“javascript“
? ?? ?alert(args["num"]);//"l0"
? ?可见,每个查询字符串参数都成了返回对象的属性。这样就极大地方便了对每个参数的访问。
? ?本文仅限内部技术人员学习交流,不得作于其他商业用途.文章出自:南昌网站建设公司-网络 http://www.huicuiwang.cn 如转载请注明出处!
PS:所有作品版权归原创作者所有,与本站立场无关,如不慎侵犯了你的权益,请联系我们告知,我们将做删除处理!
Copyright © 20019-2023 荟萃信息网 版权所有 蜀ICP备16021156号-2
电 话:0 手 机:0 传 真: E-mail:2074917417@qq.com
地 址:成都市金牛区
技术支持:荟萃网络科技
扫码关注我们