从URL问题获取域名

时间:2014-08-20 07:25:56

标签: javascript

我需要一些JavaScript帮助,我有以下功能

domain: function(){
var a = document.createElement('a');
a.href = this.url;
return a.hostname;
}

哪个好,但是当this.url像google.com(没有http或www)时,我的回复是localhost 有什么想法吗?

2 个答案:

答案 0 :(得分:3)

如果缺少协议,您可以添加协议,这样您的网址将始终有效

domain: function(d){
    var a = document.createElement('a');
    a.href = this.url.match(/^[a-zA-Z]+:\/\//) ? this.url : 'http://' + this.url;
    return a.hostname;
}

FIDDLE

如果传递的网址只是google.com而没有协议,则会将其视为相对网址,因此锚点最终为

<a href="http://localhost/google.com"></a>

如果URL是绝对的并且包含协议,则它最终为

<a href="http://google.com"></a>

这就是为什么你必须在协议缺失的情况下添加它。

答案 1 :(得分:0)

要获取完整的网址,请使用此

var newURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname;