我有三個函數來處理url參數,但它不夠好,我的意思是它有點複雜,而我正在尋找簡單的函數來使用所有這三個。獲取多個url參數
function getUrlParameter(sParam) { // this function to get single parameter
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++) {
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam) {
return sParameterName[1];
}
}
}
function replaceUrlParam(paramName, paramValue) { // this to replace parameters value by other value
var currentUrl = window.location.href;
var pattern = new RegExp('(' + paramName + '=).*?(&|$)')
var newUrl = currentUrl.replace(pattern, '$1' + paramValue + '$2');
if (newUrl == currentUrl && newUrl.indexOf(paramName + '=' + paramValue) == -1) {
newUrl = newUrl + (newUrl.indexOf('?') > 0 ? '&' : '?') + paramName + '=' + paramValue
}
window.history.pushState('', document.title, newUrl);
return newUrl;
}
function getUrlParameters() { // this to get all parameters
var sParam = 'p'; var viewParam = 'v'; var lanPram = 'l'; var ukomPram = 'uk'; var catPram = 'ca'; var ucatPram = 'uc';
l = getUrlParameter(lanPram);
ukmun = getUrlParameter(ukomPram);
kat = getUrlParameter(catPram);
uKat = getUrlParameter(ucatPram);
pagenumber = getUrlParameter(sParam);
viewIndex = getUrlParameter(viewParam);
if (l || l == 0) { l = l; } else { l = replaceUrlParam(lanPram, 0); }
if (ukmun) { ukmun = ukmun; } else { ukmun = replaceUrlParam(ukomPram, 0); }
if (kat) { kat = kat; } else { kat = replaceUrlParam(catPram, 0); }
if (uKat) { uKat = uKat; } else { uKat = replaceUrlParam(ucatPram, 0); }
if (viewIndex) { viewIndex = viewIndex; } else { viewIndex = 'l'; }
if (pagenumber) { pagenumber = pagenumber; } else { pagenumber = 1; }
}
這個工作,但它調用許多功能replaceUrlParam
和功能而大的事情,我不喜歡的是當網頁加載時使用這些網址,然後,如果我想回到以前的頁面也被追溯到每個參數
例如:如果有這個網址myfile.php?p=1&v=l&l=0&uk=0&ca=0&uc=0
然後如果我點擊上一步上一個頁面的瀏覽器我回去一個參數一樣,
myfile.php?p=1&v=l&l=0&uk=0&ca=0
然後再往前走,它停留在相同的頁面中,像下一個參數myfile.php?p=1&v=l&l=0&uk=0
等等,直到參數消失。
圍繞這3個功能是否有簡單的工作使它更容易和簡單?
謝謝。
可能是http://stackoverflow.com/questions/979975/how-to-get-the-value-from-the-url-parameter的副本 – deltree
@deltree沒有抱歉,它完全不同。看看他問的其他答案。不要只閱讀其他答案而不做重複。我想你只是閱讀tittle –