如果我的主机名是http://sample.example.com,那么在Javascript中使用 window.location.hostname
,你会得到 "example.com" 还是 "sample.example.com"?
如果不行,要如何才能获取 "sample.example.com" 呢?
如果我的主机名是http://sample.example.com,那么在Javascript中使用 window.location.hostname
,你会得到 "example.com" 还是 "sample.example.com"?
如果不行,要如何才能获取 "sample.example.com" 呢?
是的,window.location.hostname
可以给你子域名。如果这不起作用或其他浏览器不支持,你可以很容易地对其进行解析:
// window.location.href == "http://sample.somedomain.com/somedir/somepage.html"
var domain = /:\/\/([^\/]+)/.exec(window.location.href)[1];
这个对我来说就可以了:
var host = window.location.host
var subdomain = host.split('.')[0]
www
开头,这可能会返回 www
作为子域名。 - King Holly我知道这是一个老问题,但更加稳健的答案是捕获所有子域名。可能存在嵌套的子域名,例如https://my.company.website.com
。为了充分捕获所有子域名,我认为这是最简单的答案:
// for https://my.company.website.com,
const subdomain = window.location.hostname.split('.').slice(0, -2).join('.');
console.log(subdomain); // "my.company"
subdomain2.subdomain1.domain.com
、subdomain.domain.com
、domain.com
。由于本地主机的原因,如果我在本地环境中,我会将切片更改为-1。 - Lucas Vazquezdomain.com
的例子中,这段代码将返回一个空字符串
。 - user736893.co.uk
。 - borisdiakur以下是实现方法:
var subdomain = window.location.host.split('.')[1] ? window.location.host.split('.')[0] : false;
const subdomain = window.location.hostname.split(".")[0]
window.location.hostname 返回包括子域名、主域名和顶级域名的字符串。
因此,您可以通过将其转换为数组,然后获取第一个元素来轻松获取第一个单词。
首先,正确的写法是window.location
,而不是document.location
(在某些浏览器中document.location
也可以使用,但它不是标准写法)
而且,location.hostname
会返回包括任何子域名在内的完整域名
更多信息请参阅Window Location
是的,alert(window.location.hostname)将包括子域名,如'www'和'sample'。
var a = new String(window.location);
a = a.replace('http://','');
a = a.substring(0, a.indexOf('/'));
alert(a);
子域.主域.扩展名
// Print Subdomain
console.log(window.location.host.split('.')[0]);
// Print Maindomain
console.log(window.location.host.split('.')[1]);
// Print extension
console.log(window.location.host.split('.')[2]);