如何使用jquery ..从URL获取域名?

我有eq的域名。

1) http://www.abc.com/search 2) http://go.abc.com/work 

我只从上面的URL获得域名

输出像

 1) http://www.abc.com/ 2) http://go.abc.com/ 

我能怎么做?

在浏览器中

您可以使用浏览器的URLparsing器使用<a>元素:

 var hostname = $('<a>').prop('href', url).prop('hostname'); 

或没有jQuery:

 var a = document.createElement('a'); a.href = url; var hostname = a.hostname; 

(这个技巧对parsing相对于当前页面的path特别有用。)

浏览器之外(可能更有效):

使用以下function:

 function get_hostname(url) { var m = url.match(/^http:\/\/[^/]+/); return m ? m[0] : null; } 

像这样使用它:

 get_hostname("http://example.com/path"); 

这将返回http://example.com/作为您的示例输出。

当前页面的主机名

如果您只是尝试获取当前页面的主机名,请使用document.location.hostname

这对我有效。

http://tech-blog.maddyzone.com/javascript/get-current-url-javascript-jquery

 $(location).attr('host'); www.test.com:8082 $(location).attr('hostname'); www.test.com $(location).attr('port'); 8082 $(location).attr('protocol'); http $(location).attr('pathname'); index.php $(location).attr('href'); http://www.test.com:8082/index.php#tab2 $(location).attr('hash'); #tab2 $(location).attr('search'); ?foo=123 

像这样尝试。

 var hostname = window.location.origin If the URL is "http://example.com/path" then you will get "http://example.com" as the result. 

这不会为本地域的工作

 When you have URl like "https://localhost/MyProposal/MyDir/MyTestPage.aspx" and your virtual directory path is "https://localhost/MyProposal/" This case you will get this "https://localhost". 

你可以用普通的js来做到这一点

  1. location.host ,与document.location.hostname相同
  2. document.domain的 不build议

您可以使用一个技巧,创build一个<a> -element,然后将该string设置为<a> -element的href,然后您可以获得一个Location对象,您可以从中获取主机名。

你可以在String原型中添加一个方法:

 String.prototype.toLocation = function() { var a = document.createElement('a'); a.href = this; return a; }; 

并像这样使用它:
"http://www.abc.com/search".toLocation().hostname

或者使其成为一个function:

 function toLocation(url) { var a = document.createElement('a'); a.href = url; return a; }; 

并像这样使用它:
toLocation("http://www.abc.com/search").hostname

这两个都会输出: "www.abc.com"

如果你还需要协议,你可以这样做:

 var url = "http://www.abc.com/search".toLocation(); url.protocol + "//" + url.hostname 

这将输出: "http://www.abc.com"

你不需要这个jQuery,因为简单的JavaScript就足够了:

 alert(document.domain); 

看到它在行动:

 console.log("Output;"); console.log(location.hostname); console.log(document.domain); alert(window.location.hostname) console.log("document.URL : "+document.URL); console.log("document.location.href : "+document.location.href); console.log("document.location.origin : "+document.location.origin); console.log("document.location.hostname : "+document.location.hostname); console.log("document.location.host : "+document.location.host); console.log("document.location.pathname : "+document.location.pathname); 

欲了解更多详情,请点击这里window.location

只要在域名前追加“http://”即可获得合适的结果。

虽然纯JavaScript已经足够,但我仍然更喜欢jQuery方法。 毕竟,问题是使用jQuery获取主机名。

 var hostName = $(location).attr('hostname'); // www.example.com 

尝试下面的代码,它可以正常工作。

下面的示例获取主机并redirect到另一个页面。

 var host = $(location).attr('host'); window.location.replace("http://"+host+"/TEST_PROJECT/INDEXINGPAGE");