如果&view-all
URL 中不存在参数,我需要将其与值一起添加到 URL 的末尾。如果它确实存在,那么我需要能够仅更改该值而不创建新的 URL,因为它之前可能有也可能没有其他参数。
我找到了这个函数,但无法让它工作: https://stackoverflow.com/a/10997390/837705
这是我使用上面函数的代码(我无法工作):http://jsfiddle.net/Draven/tTPYL/4/
我已经知道如何 append 参数和值:
<div onclick="javascript: window.location.assign(window.location.href+='&view-all=Yes');">Blah Blah</div>
更多信息:
如果 URL 是 http://www.domain.com/index.php?action=my_action
那么默认的“&view-all”值将为“Yes”,因此当他们单击按钮时将定向到的 URL 为 http://www.domain.com/index.php?action=my_action&view-all=Yes
.
如果 URL 是 http://www.domain.com/index.php?action=my_action&view-all=Yes
然后当他们单击按钮时,它将更改为 http://www.domain.com/index.php?action=my_action&view-all=No
编辑:请给我例子。我对 JS 不太了解,而且我只是想不出用 PHP 实现的方法。
最佳答案
function setGetParameter(paramName, paramValue)
{
var url = window.location.href;
var hash = location.hash;
url = url.replace(hash, '');
if (url.indexOf(paramName + "=") >= 0)
{
var prefix = url.substring(0, url.indexOf(paramName + "="));
var suffix = url.substring(url.indexOf(paramName + "="));
suffix = suffix.substring(suffix.indexOf("=") + 1);
suffix = (suffix.indexOf("&") >= 0) ? suffix.substring(suffix.indexOf("&")) : "";
url = prefix + paramName + "=" + paramValue + suffix;
}
else
{
if (url.indexOf("?") < 0)
url += "?" + paramName + "=" + paramValue;
else
url += "&" + paramName + "=" + paramValue;
}
window.location.href = url + hash;
}
在 onclick 事件中调用上面的函数。
关于javascript - 添加/更改 URL 参数并重定向到新 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13063838/