在joomla php中,我可以使用$this->baseurl来获得基本路径,但我想在jquery中获得基本路径。

基本路径可以是以下示例中的任意一个:

http://www.example.com/
http://localhost/example
http://www.example.com/sub/example

例子也可能改变。


当前回答

var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];

其他回答

您提到example.com可能会更改,因此我怀疑实际上您需要基本url,以便能够为脚本使用相对路径表示法。在这种特殊情况下,不需要使用脚本-而是添加base标签到你的头:

<head>
  <base href="http://www.example.com/">
</head>

我通常通过PHP生成链接。

这是一个简短的例子:

const base = new URL('/', location.href).href; console.log(基地);

var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];

如果有人想把它分解成一个非常健壮的函数

    function getBaseURL() {
        var loc = window.location;
        var baseURL = loc.protocol + "//" + loc.hostname;
        if (typeof loc.port !== "undefined" && loc.port !== "") baseURL += ":" + loc.port;
        // strip leading /
        var pathname = loc.pathname;
        if (pathname.length > 0 && pathname.substr(0,1) === "/") pathname = pathname.substr(1, pathname.length - 1);
        var pathParts = pathname.split("/");
        if (pathParts.length > 0) {
            for (var i = 0; i < pathParts.length; i++) {
                if (pathParts[i] !== "") baseURL += "/" + pathParts[i];
            }
        }
        return baseURL;
    }

格式为“hostname/pathname/search”

url是:

var url = window.location.hostname + window.location.pathname + window.location.hash

为了你的案子

window.location.hostname = "stackoverflow.com"
window.location.pathname ="/questions/25203124/how-to-get-base-url-with-jquery-or-javascript"
window.location.hash = ""

baseurl = hostname = window。location。hostname