使用jQuery将参数添加到扩展的URL?

时间:2015-12-27 14:39:30

标签: javascript jquery

我正在使用脚本向URL添加参数,以便与if语句一起使用以进行布局更改。它适用于这样的结构:

/Computers/Desktops

点击更改布局:

/Computers/Desktops?param=list

/Computers/Desktops?param=grid

我正在使用添加参数的文件管理器,然后布局会在以下内容之间发生变化:

/Computers/Desktops?param=list&fss=HP+2GB

并点击:

/Computers/Desktops?param=grid&fss=HP+2GB

这很好用,但我需要让这个工作适用于另一个看起来像这样的结构:

/Computers/Desktops/Apple/Apple-iMac-Core-i5-2-7-GHz-8-GB-1-TB-LED-2?prodid=30811

在这里,我想在?prodid=30811之前添加参数,以便在

之间点击时更改布局
/Desktops/Apple/Apple-iMac-Core-i5-2-7-GHz-8-GB-1-TB-LED-2?param=list&prodid=30811

/Desktops/Apple/Apple-iMac-Core-i5-2-7-GHz-8-GB-1-TB-LED-2?param=grid&prodid=30811

我希望我可以将脚本中的FSS更改为prodid,但这不起作用。那么为什么它不起作用,为什么,以及我该如何做呢?我的if / else脚本已经运行,我只需要点击按钮即可找到正确的网址。

$('.click3').on('click', function() {
    console.log("Clicked");
    var baseUrl =  window.location.href.split("?")[0];
    var fss = getParametersByName("fss");
    var params = getParametersByName("fss");

    if (params == "list") 
        param = "grid"; 
    else 
        param = "list";

    var newUrl = baseUrl + "?param=" + param;
    if ((fss).length > 0) 
        newUrl = newUrl + "&fss=" + fss;

    window.location.href = newUrl;

    function getParametersByName(name) { 
        name = name.replace(/[[]/, "\[").replace(/[]]/, "\]"); 
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
            results = regex.exec(location.search); 
        return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
    } 
});

0 个答案:

没有答案