JQuery - проверить часть URL - PullRequest
2 голосов
/ 14 марта 2012

Я использую jquery, и мне нужно проверить URL-адрес, чтобы увидеть, просматривает ли пользователь контент с тегами / категориями.

Мне нужно проверить URL-адрес, чтобы сделать это.Раньше я делал что-то вроде этого, чтобы проверить, на какой странице был пользователь ...

var loc = window.location; 
var pageOne = 'http://design.optimus.com/projects';
if(loc == pageOne) { 
//do stuff
}

Но эти URL никогда не менялись, поэтому мне было легко проверить, были ли они на одной странице.URL или нет.

Однако новые URL будут иметь разные окончания в зависимости от тега, который ищет пользователь.Например,

http://optidesign.squarespace.com/projects/tag/design
http://optidesign.squarespace.com/projects/tag/production
http://optidesign.squarespace.com/projects/tag/animation

Итак, я хочу использовать тот же метод, что и в первой части, но я просто хочу проверить начало URL:

http://optidesign.squarespace.com/projects/tag/

Какмне делать это?

Ответы [ 5 ]

4 голосов
/ 14 марта 2012

Для этой цели можно использовать метод indexOf:

if (location.href.indexOf('http://optidesign.squarespace.com/projects/tag/') === 0) {
    // Well...
}

Я могу представить, что вы тестируете страницы на localhost или по другому протоколу. Следующее решение может быть более полезным:

if (location.pathname.indexOf('/projects/tag/') === 0) {
    // Well...
}
1 голос
/ 14 марта 2012

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

Если предположить, что URL-адрес - это единственные данные, которые вы должны удалить, выможно использовать indexOf, чтобы увидеть, присутствует ли эта часть URL.

var loc = window.location.toString(); 
var pageOne = 'http://design.optimus.com/projects/tag/';
if(loc.indexOf(pageOne) >= 0) { 
//do stuff
}

Для того, чтобы быть на будущее, если вы измените домен или переключитесь на HTTPSВ качестве альтернативы вы можете использовать следующее:

var loc = window.location.pathname; 
var pageOne = '/projects/tag/';
if(loc.indexOf(pageOne) >= 0) { 
//do stuff
}

Я поместил пример на JSFiddle , с которым вы можете играть.

0 голосов
/ 14 марта 2012

Чтобы просто проверить наличие тега:

if (window.location.match(/tag/)!==null) {
    //do something
}

Чтобы удалить последнюю часть любого URL:

var url = window.location.split('/');
    url.pop();
    url = url.join().replace(/,/g, '/')+'/';
0 голосов
/ 14 марта 2012

Вместо этого вы можете использовать window.location.pathname, поскольку имя хоста (например, stackoverflow.com) всегда одинаково.Итак, window.location.pathname даст вам остальную часть URL.В этом примере вы получите: "/ questions / 9706497 / jquery-check-for-part-a-url"

Теперь, если вы хотите проверить первые двасегменты, вы можете разделить строку:

window.location.pathname.split("/");

Это даст вам:

["", "questions", "9706497", "jquery-check-for-part-of-a-url"]

А теперь проверьте нужный вам индекс, например:

parts = window.location.pathname.split("/");
if (parts[1] == "projects") {
    alert("Projects!!");
}
0 голосов
/ 14 марта 2012

Если вы хотите знать, на какой странице находится пользователь, предполагая, что это «каталог», следующий за tag, то я бы предложил:

if (url.indexOf('tag')) {
    var temp = url.split('/tag/')[1];
    var curPage = temp.substring(0,temp.indexOf('/'));
    return curPage;
}

JS Fiddle demo .

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