8

次のように、場所と最初のフォルダーを取得したい:

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

4 に答える 4

15

これを試すことができます。

var url = location.protocol + "//" + document.domain + "/" 
          + location.pathname.split('/')[1] + "/";
于 2012-01-25T04:30:49.473 に答える
3

これを試して

 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;
 }

ほとんどすべてのケースを処理します{私はそう思います:)}

于 2012-01-25T04:31:29.690 に答える
2

@Amarには優れた答えがありますが、ここで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/

于 2012-01-25T05:12:35.407 に答える
2

Location Objectを使用してやりたいことがもっとある場合は、最初にドキュメントを確認します。

いずれにせよ、あなたが探しているのは次のようなものだと思います。

var href = location.href.split('/');
href.pop();
href = href.join('/') + '/';
console.log(href);
于 2012-01-25T04:46:21.867 に答える