Maison >interface Web >js tutoriel >Comment puis-je modifier les paramètres d'URL et spécifier les valeurs par défaut à l'aide de JavaScript ?
Problème :
Vous devez modifier le paramètre d'URL « lignes » dans une URL donnée à une valeur spécifique ou ajoutez-la avec une valeur par défaut si elle n'existe pas.
Solution :
Utilisez des fonctions JavaScript telles que updateURLParameter pour manipuler l'URL paramètres. Voici une version étendue du code fourni dans la réponse au problème :
/** * http://stackoverflow.com/a/10997390/11236 */ function updateURLParameter(url, param, paramVal) { let newAdditionalURL = ""; const tempArray = url.split("?"); const baseURL = tempArray[0]; let additionalURL = tempArray[1]; let temp = ""; if (additionalURL) { const additionalURLArray = additionalURL.split("&"); additionalURLArray.forEach((paramValue) => { if (paramValue.split('=')[0] != param) { newAdditionalURL += temp + paramValue; temp = "&"; } }); } const rows_txt = temp + "" + param + "=" + paramVal; return baseURL + "?" + newAdditionalURL + rows_txt; } // Function Calls: const newURL1 = updateURLParameter(window.location.href, 'locId', 'newLoc'); const newURL2 = updateURLParameter(newURL1, 'resId', 'newResId'); window.history.replaceState('', '', updateURLParameter(window.location.href, "param", "value"));
Version mise à jour gérant les ancres d'URL :
function updateURLParameter(url, param, paramVal) { let TheAnchor = null; let newAdditionalURL = ""; const tempArray = url.split("?"); const baseURL = tempArray[0]; let additionalURL = tempArray[1]; let temp = ""; if (additionalURL) { const tmpAnchor = additionalURL.split("#"); TheParams = tmpAnchor[0]; TheAnchor = tmpAnchor[1]; if (TheAnchor) additionalURL = TheParams; const tempArray = additionalURL.split("&"); tempArray.forEach((paramValue) => { if (paramValue.split('=')[0] != param) { newAdditionalURL += temp + paramValue; temp = "&"; } }); } else { const tmpAnchor = baseURL.split("#"); TheParams = tmpAnchor[0]; TheAnchor = tmpAnchor[1]; if (TheParams) baseURL = TheParams; } if (TheAnchor) paramVal += "#" + TheAnchor; const rows_txt = temp + "" + param + "=" + paramVal; return baseURL + "?" + newAdditionalURL + rows_txt; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!