我打算购买这两个域名为同一站点。 根据使用的域上我打算提供网页上略有不同的数据。 有我的方式来检测实际的域名,页面由让我知道我的内容更改为加载?
我环顾四周,像这样的东西,但大部分没有工作,我希望它的方式。
例如,当使用
document.write(document.location)
上的jsfiddle返回
http://fiddle.jshell.net/_display/
即实际路径或不管它是什么。
我打算购买这两个域名为同一站点。 根据使用的域上我打算提供网页上略有不同的数据。 有我的方式来检测实际的域名,页面由让我知道我的内容更改为加载?
我环顾四周,像这样的东西,但大部分没有工作,我希望它的方式。
例如,当使用
document.write(document.location)
上的jsfiddle返回
http://fiddle.jshell.net/_display/
即实际路径或不管它是什么。
怎么样:
window.location.hostname
该location
对象实际上有许多属性指的是URL的不同部分
如果你不感兴趣的主机名(例如www.beta.example.com
),但在域名(例如example.com
),这个工程的有效主机名:
function getDomainName(hostName)
{
return hostName.substring(hostName.lastIndexOf(".", hostName.lastIndexOf(".") - 1) + 1);
}
function getDomain(url, subdomain) {
subdomain = subdomain || false;
url = url.replace(/(https?:\/\/)?(www.)?/i, '');
if (!subdomain) {
url = url.split('.');
url = url.slice(url.length - 2).join('.');
}
if (url.indexOf('/') !== -1) {
return url.split('/')[0];
}
return url;
}
例子
以前的版本快满域(包括子域)。 现在,它决定根据喜好权域。 所以,当第二个参数为真只要将包含子,否则仅返回“主域”
尝试在脚本中运行:路径: HTTP://本地主机:4200 /登陆查询= 1#2
console.log(window.location.hash)
位置有以下值:
window.location.hash: "#2"
window.location.host: "localhost:4200"
window.location.hostname: "localhost"
window.location.href: "http://localhost:4200/landing?query=1#2"
window.location.origin: "http://localhost:4200"
window.location.pathname: "/landing"
window.location.port: "4200"
window.location.protocol: "http:"
window.location.search: "?query=1"
您可以从位置对象的Javascript得到它很容易:
对于本网页的URL示例如下:
http://www.stackoverflow.com/questions/11401897/get-the-current-domain-name-with-javascript-not-the-path-etc
然后,我们可以用以下的位置对象的属性得到确切的域:
location.host = "www.stackoverflow.com"
location.protocol= "http:"
你可以用全域:
location.protocol + "//" + location.host
在这个例子中返回http://www.stackoverflow.com
我加入这个我们可以得到完整的网址,并与定位对象的其他属性的路径:
location.href= "http://www.stackoverflow.com/questions/11401897/get-the-current-domain-name-with-javascript-not-the-path-etc"
location.pathname= "questions/11401897/get-the-current-domain-name-with-javascript-not-the-path-etc"
如果你只在域名感兴趣,并希望忽略的子域,那么你需要解析出来的host
和hostname
。
下面的代码执行此操作:
var firstDot = window.location.hostname.indexOf('.');
var tld = ".net";
var isSubdomain = firstDot < window.location.hostname.indexOf(tld);
var domain;
if (isSubdomain) {
domain = window.location.hostname.substring(firstDot == -1 ? 0 : firstDot + 1);
}
else {
domain = window.location.hostname;
}
http://jsfiddle.net/5U366/4/
使用
document.write(document.location.hostname)
window.location
有一堆属性。 见这里为他们的名单。
如果你希望全域原点,您可以使用此:
document.location.origin
如果你希望得到的只是域名,使用可你只是这样的:
document.location.hostname
但是,你还有其他的选择,看看在性能:
document.location
由于这个问题问的域名,而不是主机名,一个正确的答案应该是
window.location.hostname.split('.').slice(-2).join('.')
这适用于主机的名称,如www.example.com过。
如果你想在JavaScript中获取域名,只需要使用下面的代码:
var domain_name = document.location.hostname;
alert(domain_name);
如果你需要的网页的URL路径,以便您可以访问网页的URL路径用这个例子:
var url = document.URL;
alert(url);
我的情况最匹配window.location.origin
这个怎么样的功能?
window.location.hostname.match(/\w*\.\w*$/gi)[0]
这将只匹配域名,而不考虑如果一个子域或主域
我想,这应该是如此简单:
url.split("/")[2]
我是新来的JavaScript,但不能你只需要使用:document.domain的 ?
例:
<p id="ourdomain"></p>
<script>
var domainstring = document.domain;
document.getElementById("ourdomain").innerHTML = (domainstring);
</script>
输出:
domain.com
要么
www.domain.com
这取决于你用什么在您的网站。