使用javascript获取域/主​​机名的最快方法

sta*_*tan 33 javascript

我的网站上已经有很多js了,所以我希望有一个能够尽可能高效地抓取当前网址的域名的函数.

例:

输入:https://stackoverflow.com/questions/ask

结果:stackoverflow.com

输入:http://test.stackoverflow.com/questions/ask

结果:test.stackoverflow.com

我想最好的开始方式是使用document.location,但我不知道该怎么办.

小智 58

这取决于您将使用域名的具体内容,具体取决于您是否关心指定的端口号.如果您的URL包含如下端口号:

http://stackoverflow.com:80/question/ask

document.location.hostname 将返回"stackoverflow.com"

而,document.location.host将返回"stackoverflow.com:80"

哪个更好取决于您的用例.

如果您正在检查域名以了解脚本是否能够访问另一个框架/窗口中的脚本/ DOM,请注意端口号是否重要.浏览器不允许跨框架/窗口访问跨域脚本.为了比较域名,可以将不同的端口号视为不同的域.


RaY*_*ell 43

尝试 document.location.hostname


小智 15

使用document.location.origin,如果你需要的起源的主机名(包括HTTP/HTTPS)