所以我有一個叫做A.html
的html頁面,它被稱爲B.html
:A.html?varString="bla-bla-bla"
發送args到JS是否正確?如何解析JS的參數?如何閱讀使用Javascript獲取請求?
(不使用如jQuery任何框架,在IE6工作,火狐3)
所以我有一個叫做A.html
的html頁面,它被稱爲B.html
:A.html?varString="bla-bla-bla"
發送args到JS是否正確?如何解析JS的參數?如何閱讀使用Javascript獲取請求?
(不使用如jQuery任何框架,在IE6工作,火狐3)
這是一個解析查詢字符串的函數。傳遞參數名稱並返回值。
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++)
{
var pair = vars[i].split("=");
if (pair[0] == variable)
{
return pair[1];
}
}
return -1; //not found
}
alert(location.search); // will display everything from the ? onwards
你可能想在不同的變量從查詢字符串中分離出來,這樣就可以訪問他們的名字:
var request = {};
var pairs = location.search.substring(1).split('&');
for (var i = 0; i < pairs.length; i++) {
var pair = pairs[i].split('=');
request[pair[0]] = pair[1];
}
然後你就可以像request['varString']
訪問它,這會給你"bla-bla-bla"
。
晴你想處理傳遞給服務器端的頁面的參數,但如果你有你的理由,爲什麼這樣做客戶端,這裏有一個小腳本,我發現:
function gup(name)
{
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if(results == null)
return "";
else
return results[1];
}
我沒有測試它,但我很確定它會去工作。
只需使用它:gup('parameter')
它會爲您返回參數值。
要通過解析JS查詢字符串,您可以查看使用類似
function getQueryValue(param) {
var queryStringArray = querystring && querystring.substring(1).split("&");
for (var i=0, length = queryStringArray.length; i < length; i++) {
var token = queryStringArray[i],
firstPart = token && token.substring(0, token.indexOf("="));
if (firstPart === param) {
return token.substring(token.indexOf("=") + 1, token.length);
}
}
}
例如給定一個URL「http://domain.com.au?aaa=bbb」,你可以將這個fn命名爲getQeuryValue(「aaa」),你會得到「bbb」
我上傳了這段代碼Gist 。修改爲與模塊模式來兼容)
由於新URLSearchParams
接口,它變得更加容易:
var url = new URL("https://example.org/?foo=bar&foo2=bar2");
var params = url.searchParams;
// Access to a variable
console.log(params.get("foo"));
// Loop over params
for (var key of params.keys()) {
console.log(params.get(key));
}
您應該檢查Mozilla Developer Network對瀏覽器的兼容性,因爲它是一個新的API
可能。 [我如何在JavaScript中獲取查詢字符串值?]的副本(http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript) – 2016-01-03 04:34:11