有没有一个简单的方法可以从一个完整的URL开始:

document.location.href = "http://aaa.bbb.ccc.com/asdf/asdf/sadf.aspx?blah"

只提取主部分:

aaa.bbb.ccc.com

肯定有JavaScript函数能可靠地做到这一点,但我找不到。


当前回答

检查:

alert(window.location.hostname);

这将返回主机名www.domain.com

and:

window.location.host

将返回域名与端口如www.example.com:80

为完整的参考检查Mozilla开发者网站。

其他回答

Try

document.location.host

or

document.location.hostname

你可以连接位置协议和主机:

var root = location.protocol + '//' + location.host;

对于url,比如'http://stackoverflow.com/questions'它会返回'http://stackoverflow.com'

使用文档。位置对象及其主机或主机名属性。

alert(document.location.hostname); // alerts "stackoverflow.com"

还有另一个hack我使用,从来没有看到任何StackOverflow响应: 使用图像的“src”属性将生成站点的完整基本路径。 例如:

var dummy = new Image;
dummy.src = '$';                  // using '' will fail on some browsers
var root = dummy.src.slice(0,-1); // remove trailing '$'

在http://domain.com/somesite/index.html这样的URL上, Root将被设置为http://domain.com/somesite/。 这也适用于localhost或任何有效的基本URL。

注意,这将导致对$ dummy映像的HTTP请求失败。 您可以使用现有的映像来避免这种情况,只需稍微修改代码。

另一种变体使用虚拟链接,对HTTP请求没有副作用:

var dummy = document.createElement ('a');
dummy.href = '';
var root = dummy.href;

不过,我并没有在每个浏览器上测试它。

检查:

alert(window.location.hostname);

这将返回主机名www.domain.com

and:

window.location.host

将返回域名与端口如www.example.com:80

为完整的参考检查Mozilla开发者网站。