Dies war mein eigener Versuch, aber ich werde die Antwort von annakata verwenden, da sie viel sauberer erscheint:
function AddUrlParameter(sourceUrl, parameterName, parameterValue, replaceDuplicates)
{
if ((sourceUrl == null) || (sourceUrl.length == 0)) sourceUrl = document.location.href;
var urlParts = sourceUrl.split("?");
var newQueryString = "";
if (urlParts.length > 1)
{
var parameters = urlParts[1].split("&");
for (var i=0; (i < parameters.length); i++)
{
var parameterParts = parameters[i].split("=");
if (!(replaceDuplicates && parameterParts[0] == parameterName))
{
if (newQueryString == "")
newQueryString = "?";
else
newQueryString += "&";
newQueryString += parameterParts[0] + "=" + parameterParts[1];
}
}
}
if (newQueryString == "")
newQueryString = "?";
else
newQueryString += "&";
newQueryString += parameterName + "=" + parameterValue;
return urlParts[0] + newQueryString;
}
Außerdem fand ich dieses jQuery-Plugin aus einem anderen Beitrag auf Stackoverflow, und wenn Sie mehr Flexibilität benötigen, könnten Sie das verwenden: http://plugins.jquery.com/project/query-object
Ich würde denken, der Code wäre (habe ich nicht getestet):
return $.query.parse(sourceUrl).set(parameterName, parameterValue).toString();