AngularJS如何在 javascript 中删除从 url 的查询字符串数组

发布时间: 2017/4/16 20:22:06
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我正在从 URL 查询字符串数组中删除的问题。

这是我的网址-

在 Chrome,它显示在给定的格式-

Var url = "http://mywebsite.com/innovation?agenda%5B%5D=4995&agenda%5B%5D=4993#ideaResult";

而在 mozilla 它显示这种格式-中

 http://mywebsite.com/innovation?agenda[]=4995&agenda[]=4993#ideaResult

我想要删除特定的查询参数。

假设我想删除"4995",那么最终的 URL 应该要这样-

http://mywebsite.com/innovation?agenda[]=4993#ideaResult

请帮忙。

解决方法 1:

function removeArrayParam(key, value, sourceURL) {
   var rtn = sourceURL.split("?")[0],
       param,
       params_arr = [],
       queryString = (sourceURL.indexOf("?") !== -1) ? sourceURL.split("?")[1] : "";
   if (queryString !== "") {
       params_arr = queryString.split("&");
       for (var i = params_arr.length - 1; i >= 0; i -= 1) {
           param = params_arr[i].split("[]=")[0];
           paramValue = params_arr[i].split("[]=")[1];
           if (param === key && paramValue === value) {
               params_arr.splice(i, 1);
           }
       }
       if(params_arr.length) {
        rtn = rtn + "?" + params_arr.join("&");
       } 
   }
   return rtn;
}

此函数会给你所需的结果。刚刚通过的键、 值和 hashless 的 url。

var url = window.location.href;
var hash = window.location.hash;
var index_of_hash = url.indexOf(hash) || url.length;
var hashless_url = url.substr(0, index_of_hash);  
var desired_url = removeArrayParam(key, value, unescape(hashless_url));
赞助商