十年专注于品牌网站建设 十年专注于品牌网站建设,低调、有情怀的网络应用服务商!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

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

百恒网络 2013-05-17 2160

首先我们介绍location对像,location是最有用的BOM对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能。事实上,location对象是很特别的一个对象,因为它既是window对象的属性,也是document对象的属性;换句话说,window.location和document.location引用的是同一个对象。location对象的用处不只表现在它保存着当前文档的信息,还表现在它将URL解析为独立的片段,让开发人员可以通过不同的属性访问这些片段。南昌网络公司技术人员将通过下表列出了location对象的所有属性(注:省略了每个属性前面的location前缀)。

属性名 例子 说明
hash "#contents" 返回URL中的hash(#号后面跟零或多个字符),如果URL中不包含散列,则返回空字符串.
host "www.jxbh.cn:80" 返回服务器名称和端口号(如果有)
hostname "www.jxhb.cn" 返回不带端口号的服务器名称
href "http://www.jxbh.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.jxbh.cn 如转载请注明出处!

400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×