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

时间:2011-01-27 11:09:55

标签: jquery

我有eq。

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

我只从上面的网址

获取域名

输出如

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

我该怎么办?

10 个答案:

答案 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执行此操作
  1. location.host,与document.location.hostname
  2. 相同
  3. document.domain 不推荐

答案 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");