轉(zhuǎn)自http://www.cnblogs.com/fishtreeyu/archive/2011/02/27/1966178.html
URL即:統(tǒng)一資源定位符 (Uniform Resource Locator, URL) 完整的URL由這幾個(gè)部分構(gòu)成:scheme://host:port/path?query#fragment
- scheme:通信協(xié)議常用的http,ftp,maito等
- host:主機(jī)服務(wù)器(計(jì)算機(jī))域名系統(tǒng) (DNS) 主機(jī)名或 IP 地址雇庙。
- port:端口號整數(shù)佩捞,可選,省略時(shí)使用方案的默認(rèn)端口母怜,如http的默認(rèn)端口為80抵皱。
- path:路徑由零或多個(gè)"/"符號隔開的字符串善榛,一般用來表示主機(jī)上的一個(gè)目錄或文件地址辩蛋。
- query:查詢可選呻畸,用于給動(dòng)態(tài)網(wǎng)頁(如使用CGI、ISAPI悼院、PHP/JSP/ASP/ASP.NET等技術(shù)制作的網(wǎng)頁)傳遞參數(shù)伤为,可有多個(gè)參數(shù),用"&"符號隔開据途,每個(gè)參數(shù)的名和值用"="符號隔開绞愚。
- fragment:信息片斷字符串,用于指定網(wǎng)絡(luò)資源中的片斷颖医。例如一個(gè)網(wǎng)頁中有多個(gè)名詞解釋位衩,可使用fragment直接定位到某一名詞解釋。(也稱為錨點(diǎn).)
對于這樣一個(gè)URL http://www.maidq.com/index.html?ver=1.0&id=6#imhere
我們可以用javascript獲得其中的各個(gè)部分
- window.location.href整個(gè)URl字符串(在瀏覽器中就是完整的地址欄)本例返回值: http://www.maidq.com/index.html?ver=1.0&id=6#imhere
- window.location.protocolURL 的協(xié)議部分本例返回值:http:
- window.location.hostURL 的主機(jī)部分本例返回值:www.maidq.com
- window.location.portURL 的端口部分如果采用默認(rèn)的80端口(update:即使添加了:80)熔萧,那么返回值并不是默認(rèn)的80而是空字符本例返回值:""
- window.location.pathnameURL 的路徑部分(就是文件地址)本例返回值:/fisker/post/0703/window.location.html
- window.location.search查詢(參數(shù))部分除了給動(dòng)態(tài)語言賦值以外糖驴,我們同樣可以給靜態(tài)頁面,并使用javascript來獲得相信應(yīng)的參數(shù)值本例返回值:?ver=1.0&id=6
- window.location.hash錨點(diǎn)本例返回值:#imhere
采用正則表達(dá)式獲取地址欄參數(shù)
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return unescape(r[2]); return null;
}
// 調(diào)用方法
alert(GetQueryString("參數(shù)名1"));
alert(GetQueryString("參數(shù)名2"));
alert(GetQueryString("參數(shù)名3"));