电 话:0

手 机:0

联系人:刘先生

E_mail:2074917417@qq.com

地 址:成都市金牛区

您当前的位置是:主页 > 行业资讯 > news >

news

Javascript查询字符串location.search()使用方法介绍

发布时间:2022/01/11 丨 文章来源:未知 丨 浏览次数:

首先我们介绍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 ? ?? ?item=items[i]. split(":");
? ?? ?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:所有作品版权归原创作者所有,与本站立场无关,如不慎侵犯了你的权益,请联系我们告知,我们将做删除处理!


网站首页 | app开发| 小程序开发| SEM竞价托管| 行业资讯

扫码关注我们