Как получить текущий URL в JQuery - PullRequest
0 голосов
/ 07 мая 2018

Я не могу объяснить себя в заголовке. То, что я хочу, это получить строку между слешами. Как это: www.example.com / Foo / бар / ID / 1 я хочу получить "foo" . Потому что я сделал эти коды.

select: function(event, ui) {
            if(window.location.href = "news/" + ui.item.slug){
           window.location.href =null;
            }
            else
                window.location.href ="news/" + ui.item.slug;
        }

У меня есть поле поиска автозаполнения. Когда я нажал на результат, он перенаправил меня на www.example.com / news / 34523 На этой странице, если я снова использую поле поиска, он перенаправляет меня на www.example.com / news / news / 12412 После этого я получил 404. Но если я не на вкладке новостей, например www.example.com / foo работает идеально, когда я использую поле поиска. Мне просто нужно заявление if, если я на страницах новостей, действуй как другая страница.

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Кажется, проблема в вашем URL, который перенаправляется. Попробуйте следующий код.

select: function(event, ui) {
            if(window.location.href = "/news/" + ui.item.slug){

            }
            else
                window.location.href ="/news/" + ui.item.slug;
        }
0 голосов
/ 07 мая 2018

Вы можете просто использовать свойство location.pathname, чтобы получить часть между первым и вторым слешем и запустить код на основе этого.

console.log(window.location.pathname);
console.log(window.location.pathname.split("/")[1] === "foo");

Чтобы показать, что это работает, вот еще один фрагмент, действующий так, как если бы url было window.location:

let url = document.createElement('a');
url.href = "http://www.example.com/foo/bar/id/1";

console.log(url.pathname);
console.log(url.pathname.split("/")[1] === "foo");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...