如何使用JavaScript删除最后一个URL位置哈希

时间:2019-01-15 16:17:05

标签: javascript url

我在我的网站上使用引导程序模态,所有模态均已打开,它将使用模态元素id和我传递的数据添加url。

我的问题是,当单击按钮时,如何删除上次添加的哈希,就像浏览器后退按钮单击时,窗口将导航回去以删除上一个哈希。

我该如何使用JavaScript来删除最后一个URL位置,我希望每次单击按钮时,都会删除url哈希列表中的最后一个哈希。

function ensureHash(newHash){
    var lochash = location.hash;
    if(lochash || lochash != ""){newHash = lochash + "&" + newHash;}
    if (window.location.hash) {
        return window.location.href.substring(0, window.location.href.lastIndexOf(window.location.hash)) + newHash;
    }
    return window.location.hash + newHash;
}
window.location.href = ensureHash("modalElementId=modalAction");

https://example.com/app?#mElem1=mAcct1&#mElem2=mAcct2&#mElem4=mAcct5

我尝试这样做,但效果不佳

function ensureRemoveHash(){
 var gethash = location.hash;
 gethash = gethash.slice(0, gethash.lastIndexOf('&'));
 return gethash;
}
window.location.href = ensureRemoveHash();

1 个答案:

答案 0 :(得分:0)

像这样吗?

var str = "https://example.com/app?#mElem1=mAcct1&#mElem2=mAcct2&#mElem4=mAcct5"
function dropHash(str) {
  if (str.indexOf("#") ==-1) return str;
  var arr = str.split("#");
  arr.pop();
  return arr.join("#");
}

console.log(str);
str = dropHash(str)
console.log(str);
str = dropHash(str)
console.log(str);
str = dropHash(str)
console.log(str);

还是只用按钮代替哈希?

var url = new URL("https://example.com/app")
console.log(url);
url.hash="mElem2=mAcct2"
console.log(url);
url.hash="mElem3=mAcct3"
console.log(url);