Я хочу использовать jQuery, чтобы получить местоположение и первую папку с window.location - PullRequest
8 голосов
/ 25 января 2012

Я хочу получить местоположение и первую папку, например:

http://www.example.com/test/

var $location = window.location.href;
alert ($location);

, это возвращает

http://www.example.com/test/location-test.html

Так что я бы хотел, чтобы все вернулось до "test /"так что я получаю только:

http://www.example.com/test/

Заранее спасибо!

Ответы [ 4 ]

15 голосов
/ 25 января 2012

Вы можете попробовать это.

var url = location.protocol + "//" + document.domain + "/" 
          + location.pathname.split('/')[1] + "/";
3 голосов
/ 25 января 2012

Попробуйте это

 function baseUrl() {

     var baseUri = window.location.href;
     //Removes any # from href (optional)
     if(baseUri.slice(baseUri.length - 1, baseUri.length) == "#")
          baseUri = baseUri.slice(0, baseUri.length - 1);
     var split = window.location.pathname.split('/');
     if (split.length > 2) 
          baseUri = baseUri.replace(window.location.pathname, '') + "/" + split[1] + "/";
     //This will append the last slash
     if (baseUri.substring(baseUri.length - 1, baseUri.length) != "/") 
          baseUri += "/";
     return baseUri;
 }

Обрабатывает почти все случаи {я так думаю :)}

2 голосов
/ 25 января 2012

@ У Амара отличный ответ, но просто для демонстрации того, что вы можете сделать с помощью javascript, это еще одно решение. Я не знаю, рекомендуется ли это, и если нет, то я хотел бы услышать почему.

//Play with the sting prototype
String.prototype.getFirstFolder = function ()
{ //Get First Folder
    var parts = this.split('/');
    var ret = parts[0];//if parts.length is <=1 then its an invalid url
    var stop = Math.min(4,parts.length);
    for(i=1;i<stop;i++) {
        ret += "/" + parts[i];
    }
    return ret;
}

Используется вот так

var str = "http://www.google.com/test/pages.html";
str.getFirstFolder();

См. Скрипку: http://jsfiddle.net/giddygeek/zGQN2/1/

2 голосов
/ 25 января 2012

В случае, если есть что-то более полезное, что вы хотели бы сделать, используя объект местоположения, я бы сначала посмотрел на документы .

В любом случае, я думаю, что вы ищете что-то вроде этого:

var href = location.href.split('/');
href.pop();
href = href.join('/') + '/';
console.log(href);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...