我计划为同一个网站购买两个域名。根据所使用的域,我计划在页面上提供稍微不同的数据。是否有一种方法可以让我检测页面正在加载的实际域名,以便我知道要将我的内容更改为什么?
我到处找过这样的东西,但大多数都不是我想要的方式。
例如,当使用
document.write(document.location)
在JSFiddle上返回
http://fiddle.jshell.net/_display/
也就是实际的路径。
我计划为同一个网站购买两个域名。根据所使用的域,我计划在页面上提供稍微不同的数据。是否有一种方法可以让我检测页面正在加载的实际域名,以便我知道要将我的内容更改为什么?
我到处找过这样的东西,但大多数都不是我想要的方式。
例如,当使用
document.write(document.location)
在JSFiddle上返回
http://fiddle.jshell.net/_display/
也就是实际的路径。
当前回答
因为这个问题问的是域名,而不是主机名,所以正确答案应该是
window.location.hostname.split('.').slice(-2).join('.')
这也适用于像www.example.com这样的主机名。
其他回答
Use
document.write(document.location.hostname)
窗口。Location有很多属性。请看这里的列表。
如何:
window.location.hostname
location对象实际上有许多指向URL不同部分的属性
即使问题是关于域名,接受的解决方案包括子域名(如。调用location.hostname)得到blog.example.com。 为了将来的参考,我建议使用一行程序来只提取域(例如。https://blog.example.com/index.html -> example.com)作为Micheal。
location.hostname.split('.').filter(( _, i) => i < 2).join('.')
小心!当TLD由两部分组成时(例如.co.uk),它可能会崩溃。如果是这样的话,在上面的代码中修改2和3。
这个函数呢?
window.location.hostname.match(/\w*\.\w*$/gi)[0]
这将只匹配域名,不管它是子域还是主域
如果你想要一个完整的域原点,你可以使用这个:
document.location.origin
如果你只希望得到域名,使用can you just this:
document.location.hostname
但你有其他的选择,看看属性在:
document.location