ajax动态获取url参数值,获取URL参数的方法
一、URL:統一資源定位符
1、URL組成
完整的URL由這幾個部分構成:
scheme://host:port/path?query#fragment
名詞解釋:
scheme:通信協議.常用的http,https,ftp,maito等.
host:主機(帶端口號). 主機名或IP 地址。
port:端口號,可選,省略時使用默認端口,如http的默認端口為80。
path:路徑:由零或多個"/"符號隔開的字符串,一般用來表示主機上的一個目錄或文件地址。
query:查詢參數,可選,用于給動態網頁傳遞參數,可有多個參數,用"&"符號隔開,每個參數的名和值用"="符號隔開。
fragment:信息片斷,字符串,用于指定網絡資源中的片斷。(也稱為錨點.)
2、具體片段使用實例:
1、window.location.href
整個URl字符串(在瀏覽器中就是完整的地址欄)
返回值:http://www.home.com:8080/windows/location/page.html?ver=1.0&id=timlq#love
2、window.location.protocol
URL 的協議部分。
返回值:http:
3、window.location.host
URL 的主機部分(帶端口號),
返回值:www.home.com:8080
window.location.hostname
返回值:www.home.com
4、window.location.port
URL 的端口部分。如果采用默認的80端口(update:即使添加了:80),那么返回值并不是默認的80而是空字符。
5、window.location.pathname
URL 的路徑部分(就是文件地址)
返回值:/windows/location/page.html
6、window.location.search
查詢(參數)部分。除了給動態語言賦值以外,我們同樣可以給靜態頁面,并使用javascript來獲得相信應的參數值
返回值:?ver=1.0&id=timlq
7、window.location.hash
錨點。返回值:#love
3、window.location的方法
1、location.assign(URL) 加載一個新的文檔
2、location.reload(force) 重新加載當前文檔。
說明:
如果該方法沒有規定參數,或者參數是 false,它就會用 HTTP 頭 If-Modified-Since 來檢測服務器上的文檔是否已改變。如果文檔已改變,reload()會再次下載該文檔。如果文檔未改變,則該方法將從緩存中裝載文檔。這與用戶單擊瀏覽器的刷新按鈕的效果是完全一樣的。
如果把該方法的參數設置為 true,那么無論文檔的最后修改日期是什么,它都會繞過緩存,從服務器上重新下載該文檔。這與用戶在單擊瀏覽器的刷新按鈕時按住 Shift 健的效果是完全一樣。
3、location.replace(newURL) 用一個新文檔取代當前文檔
說明:
replace() 方法不會在 History 對象中生成一個新的記錄。當使用該方法時,新的 URL 將覆蓋 History 對象中的當前記錄。
二、獲取URL參數方法的封裝
1、獲取url參數數組
var url = "http://127.0.0.1/e/action/ShowInfo.php?classid=9&id=2";
/**
* @desc 獲取url參數
* @param {String} _url url路徑
*/
function parse_url(_url){
var pattern = /(\w+)=(\w+)/ig;
var parames = {};
url.replace(pattern, function(a, b, c){
parames[b] = c;
});
return parames;
}
var parames = parse_url(url);
2、輸入參數名,輸出參數值
/**
* @desc 獲取url參數
* @param {String} name 想要獲取的參數名字
*/
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;
}
// 調用方式
var objectId = GetQueryString("objectId")
/**
* @desc 獲取url參數
* @param {String} url為穿過來的鏈接
* @param {String} id為參數名
*/
function GetParam(url, id) {
url = url+ "";
regstr = "/(\\?|\\&)" + id + "=([^\\&]+)/";
reg = eval(regstr);
//eval可以將 regstr字符串轉換為 正則表達式
result = url.match(reg);
if (result && result[2]) {
return result[2];
}
}
// 調用方式
var objectId = GetQueryString(window.location.href,"objectId")
/**
* @desc 獲取url參數
* @param {String} paramName 想要獲取的參數名字
* @param {String} url 訪問地址,可以為空:為空時默認為當前url
*/
function getParameter(paramName, url) {
var seachUrl = window.location.search.replace("?", "");
if (url != null) {
var index = url.indexOf('?');
url = url.substr(index + 1);
seachUrl = url;
}
var ss = seachUrl.split("&");
var paramNameStr = "";
var paramNameIndex = -1;
for (var i = 0; i < ss.length; i++) {
paramNameIndex = ss[i].indexOf("=");
paramNameStr = ss[i].substring(0, paramNameIndex);
if (paramNameStr == paramName) {
var returnValue = ss[i].substring(paramNameIndex + 1, ss[i].length);
if (typeof(returnValue) == "undefined") {
returnValue = "";
}
return returnValue;
}
}
return "";
}
// 調用方式
var objectId = getParameter("objectId")
總結
以上是生活随笔為你收集整理的ajax动态获取url参数值,获取URL参数的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pythonlistsort函数_pyt
- 下一篇: 接口500什么原因_80%小餐饮店几乎都