首先我们介绍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
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 如转载请注明出处!