我需要一些JavaScript帮助,我有以下功能
domain: function(){
var a = document.createElement('a');
a.href = this.url;
return a.hostname;
}
哪个好,但是当this.url像google.com(没有http或www)时,我的回复是localhost 有什么想法吗?
答案 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;
}
如果传递的网址只是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;