我有eq。
的域名1) http://www.abc.com/search
2) http://go.abc.com/work
我只从上面的网址
获取域名输出如
1) http://www.abc.com/
2) http://go.abc.com/
我该怎么办?
答案 0 :(得分:76)
您可以使用<a>
元素来利用浏览器的网址解析器:
var hostname = $('<a>').prop('href', url).prop('hostname');
或没有jQuery:
var a = document.createElement('a');
a.href = url;
var hostname = a.hostname;
(此技巧对于解析相对于当前页面的路径特别有用。)
使用以下功能:
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
。
答案 1 :(得分:31)
这对我有用。
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
答案 2 :(得分:8)
您可以使用
使用普通js执行此操作location.host
,与document.location.hostname
答案 3 :(得分:6)
试试这样。
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/"
In such cases, you will get "https://localhost".
答案 4 :(得分:6)
你不需要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://”即可获得合适的结果。
答案 5 :(得分:4)
您可以使用技巧,通过创建<a>
- 元素,然后将字符串设置为该<a>
- 元素的href,然后您有一个Location object即可获得主机名来自。
您可以向String原型添加方法:
String.prototype.toLocation = function() {
var a = document.createElement('a');
a.href = this;
return a;
};
并像这样使用它:
"http://www.abc.com/search".toLocation().hostname
或使其成为一种功能:
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"
答案 6 :(得分:2)
虽然纯JavaScript在这里已足够,但我仍然更喜欢jQuery方法。毕竟,问题是使用jQuery获取主机名。
var hostName = $(location).attr('hostname'); // www.example.com
答案 7 :(得分:0)
要获取网址以及所使用的协议,我们可以尝试以下代码。
例如,获取域以及所使用的协议(http / https)。
https://google.com
您可以使用-
host = window.location.protocol+'//'+window.location.hostname+'/';
它将返回您的协议和域名。 https://google.com/
答案 8 :(得分:0)
var hostname = window.location.origin
不适用于IE。 对于IE支持,我也会这样:
var hostName = window.location.hostname;
var protocol = window.locatrion.protocol;
var finalUrl = protocol + '//' + hostname;
答案 9 :(得分:-1)
尝试下面的代码,它适用于我。
下面的示例是获取主机并重定向到另一个页面。
var host = $(location).attr('host');
window.location.replace("http://"+host+"/TEST_PROJECT/INDEXINGPAGE");