#javascript #url
#javascript #url
Вопрос:
Я пытаюсь извлечь строку поиска из URL.
Я могу это сделать, когда URL выглядит следующим образом:
http://domain.com/search/keyword
но не тогда, когда URL выглядит так:
http://domain.com/#/search/keyword
Ниже приведен код Javascript, который работал для моего первого примера, за исключением того, что я не могу заставить его работать теперь, когда структура URL изменилась.
function () {
// find and store the path of the current page
var pagePath = location.pathname;
// if the path starts with /search/, we know it's an internal SERP
if (pagePath.indexOf("/search/") === 0) {
// if the above checks out, let's figure out where the search term begins in the URL. Then, let's use that starting point to pull out the search term itself.
var searchString = pagePath.substring(pagePath.lastIndexOf("/") 1);
// return what we found to GTM as the value of our variable
return searchString;
}
// if it's not an internal SERP page, return "none"
else {
return "none";
}
}
Приведенный выше код отлично работает, когда структура URL выглядит следующим образом:
http://domain.com/search/keyword
но не тогда, когда это выглядит так:
http://domain.com/#/search/keyword
Вопрос в том, как мне изменить свой JS-код выше, чтобы он работал с моей новой структурой URL?
Я попытался изменить часть своего JS-кода с:
if (pagePath.indexOf("/search/") === 0) {
Для
if (pagePath.indexOf("/#/search/") === 0) {
но я не могу заставить его работать. Пожалуйста, помогите 🙂
Ответ №1:
Символ хэша #
обозначает фрагмент URL и не является частью pathname
. Вы можете получить доступ к фрагменту URL с помощью location.hash