【发布时间】:2019-07-14 21:57:45
【问题描述】:
我有这个函数来获取和替换我的URL 参数:
function getURLParameters(paramName) {
var sURL = window.document.URL.toString();
if (sURL.indexOf("?") > 0) {
var arrParams = sURL.split("?");
var arrURLParams = arrParams[1].split("&");
var arrParamNames = new Array(arrURLParams.length);
var arrParamValues = new Array(arrURLParams.length);
var i = 0;
for (i = 0; i < arrURLParams.length; i++) {
var sParam = arrURLParams[i].split("=");
arrParamNames[i] = sParam[0];
if (sParam[1] !== "")
arrParamValues[i] = unescape(sParam[1]);
else
arrParamValues[i] = "No Value";
}
for (i = 0; i < arrURLParams.length; i++) {
if (arrParamNames[i] === paramName) {
return arrParamValues[i];
}
}
return "No Parameters Found";
}
}
当我有这样的URL 时,它工作正常
https://example.com/?&page=2
但是现在,我的URL是这样的:
https://example.com/?&page=2&order=my_id&direction=ASC。
我的function 仍将page=2 替换为page=3 等,但其他值附加到我的整个URL。如何在我的URL 中替换所有这些params
【问题讨论】:
-
检查重复项。使用URL 和URLSearchParams 而不是手动拆分和循环。像这样:
new URL( window.document.URL).searchParams.get(paramName)
标签: javascript url