如何使用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来做到这一点
-
location.host
,与document.location.hostname
相同 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");