Как удалить все хэши URL кроме первого? - PullRequest
2 голосов

Ну, на моем сайте есть FAQ, где пользователи могут получить доступ к конкретным вопросам через URL, например:

https://example.com/faq#question-1

И для этого я использую Jquery, такой что:

if (window.location.hash) {
    $(window.location.hash).open();
}

Но я хочу, чтобы, если пользователь вводил более одного хеша в URL, например:

https://example.com/faq#question-1#question-2#question-3#question-n

Все хэши удаляются из URL, кромепервый #question-1

Как я могу это сделать?

Редактировать: , если тип пользователя https://example.com/faq#question-1#question-2#question-3#question-n, затем изменить URL-адрес на https://example.com/faq#question-1, чтобы только первыйв URL появляется хеш, а в FAQ нужно прочитать только один хеш.

Ответы [ 3 ]

1 голос
/ 12 мая 2019

Это может быть так просто, как

var hash = window.location.hash;
var filtered_hash = '';
if(hash.length > 0){
  filtered_hash = '#' + hash.split("#")[1];
  window.location.hash = filtered_hash;
}

console.log(filtered_hash);
1 голос
/ 12 мая 2019

Вы можете использовать что-то вроде -

location.hash = '#'+location.hash.split('#')[1]
1 голос
/ 12 мая 2019

Это должно работать для вас

var str="https://example.com/faq#question-1#question-2#question-3#question-n";
var trimmedStr = str.split("#").slice(0,2).join("#");
console.log(trimmedStr);

Удаляет все хэши после первого хэша.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...