一、URL解析函數
碼🎜>;
/**
*@param {string} url 完整的URL位址
*@returns {object} 自訂的物件
*@description 用法範例:var myURL = parseURL('http://abc.com: 8080/dir/index.html?id=255&m=hello#top');
myURL.file='index.html'
myURL.hash= 'top'
myURL.host= 'abc.com'
myURL.query= '?id=255&m=hello'
myURL.params= Object = { id: 255, m: hello }
myURL.path= '/dir/index.html'
myURL.path= '/dir/index.html'
myURL.segments= Array = ['dir', 'index.html']
myURL.port= '8080'
myURL.protocol= 'http'
myURL.source= 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'
*/
function parseURL(url) {
var a = document.createElement('a');
a.href
return {
來源:url,
協定:a.protocol.replace(':',''),
主機:a.hostname,
連接埠:🎜> 主機:a.hostname,
連接埠:a.port, 🎜> 查詢:a.search,
參數:(function(){
var ret = {},
&'),
len = seg.length, i = 0, s;
for (;i
s = seg[i].split('=');
ret[s[0]] = s[1];
}
檔案: (a.pathname.match(//([^/?#] )$/i) || [,''])[1],
哈希: a.hash.replace('#' ,''),
路徑:a.pathname.replace(/^([^/])/,'/$1'),
相對:(a.href.match(/tps?:// [^/] (. )/) || [,''])[1],
段:a.pathname.replace(/^//,'').split('/')
};
}
//var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top');
警報(myURL.params.m) ; 警報(myURL.params.pid); 腳本>
path = 路徑
query = 查詢(任選,用於給動態網頁(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等)技術製作的網頁)提交參數,可以有多個參數,用”&”符號隔開,每個參數的名稱和值用”=”符號隔開。 )
http://www.jb51.net:80/seo/?ver=1.0&id=6#imhere
我們可以用javascript取得其中的各個部分
整個URl字串(在瀏覽器中就是完整的網址列)
2,window.location.protocol
本例傳回值:http:
3,window.location.host
URL 的主機部分
4,window.location.port
URL 的連接埠部分
本例傳回值:””
5,window.location.pathname
URL的路徑部分(就是檔案位址)
6,window.location.search
查詢(參數)部分