我计划为同一个网站购买两个域名。根据所使用的域,我计划在页面上提供稍微不同的数据。是否有一种方法可以让我检测页面正在加载的实际域名,以便我知道要将我的内容更改为什么?
我到处找过这样的东西,但大多数都不是我想要的方式。
例如,当使用
document.write(document.location)
在JSFiddle上返回
http://fiddle.jshell.net/_display/
也就是实际的路径。
我计划为同一个网站购买两个域名。根据所使用的域,我计划在页面上提供稍微不同的数据。是否有一种方法可以让我检测页面正在加载的实际域名,以便我知道要将我的内容更改为什么?
我到处找过这样的东西,但大多数都不是我想要的方式。
例如,当使用
document.write(document.location)
在JSFiddle上返回
http://fiddle.jshell.net/_display/
也就是实际的路径。
当前回答
我是JavaScript的新手,但你不能只使用:文档。域?
例子:
<p id="ourdomain"></p>
<script>
var domainstring = document.domain;
document.getElementById("ourdomain").innerHTML = (domainstring);
</script>
输出:
domain.com
or
www.domain.com
这取决于你在你的网站上使用什么。
其他回答
如何:
window.location.hostname
location对象实际上有许多指向URL不同部分的属性
因为这个问题问的是域名,而不是主机名,所以正确答案应该是
window.location.hostname.split('.').slice(-2).join('.')
这也适用于像www.example.com这样的主机名。
如果你想在JavaScript中获得域名,只需使用以下代码:
var domain_name = document.location.hostname;
alert(domain_name);
如果你需要web页面的URL路径,这样你就可以访问web URL路径使用这个例子:
var url = document.URL;
alert(url);
结合上面的一些答案,以下是我销毁cookie的有效方法:
/**
* Utility method to obtain the domain URI:
*/
fetchDomainURI() {
if (window.location.port.length > 0) {
return window.location.hostname;
}
return `.${window.location.hostname.match(/\w*\.\w*$/gi)[0]}`;
}
适用于具有端口的IP地址,例如,0.0.0.0:8000等,以及复杂的域,如app.staging.example.com返回。example.com =>允许跨域Cookie设置和销毁。
如果你对主机名(例如www.beta.example.com)不感兴趣,而是对域名(例如example.com)感兴趣,这适用于有效的主机名:
function getDomainName(hostName)
{
return hostName.substring(hostName.lastIndexOf(".", hostName.lastIndexOf(".") - 1) + 1);
}