Как удалить последний хэш местоположения URL с помощью JavaScript - PullRequest
0 голосов
/ 15 января 2019

Я использую модал начальной загрузки на моем сайте, все, что модально открыто, добавит URL, используя идентификатор модального элемента и данные, которые я передал.

Моя проблема заключается в том, как удалить последний добавленный хеш при нажатии кнопки, так же как при нажатии кнопки возврата в браузере. Окно будет перемещаться назад, удаляя последний хеш.

Как мне удалить последний URL-адрес соответственно с использованием javascript, я хочу, чтобы при каждом нажатии кнопки последний хэш из списка 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 голосов
/ 15 января 2019

Как то так?

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...