javascript - 添加/更改 URL 参数并重定向到新 URL

标签 javascript jquery append

如果&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/

相关文章:

javascript - 创建新的 javascript 数组,从对象属性中提取数据

javascript - 动态创建警报时,Bootstrap close.bs.alert 不会触发

javascript - 使用 jquery 按值进行选择验证

javascript - 这是有效的 jquery 拆分吗?

C++ std::string 追加 vs push_back()

javascript - Js append 按钮不起作用

javascript - 在某个字符之后向数组添加元素 javascript

javascript - 递增字符串中包含的特定数字

javascript - 在 Vue.js 中初始化具体化元素

javascript - 连接形状中所有点的算法