2010-02-20 37 views

Trả lời

296

Bạn không cần jQuery cho điều này, như javascript đơn giản sẽ đủ:

alert(document.domain); 

Nhìn thấy nó trong hành động:

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);

Đối với giá trị miền liên quan đến hơn nữa , hãy xem các thuộc tính của window.location trực tuyến. Bạn có thể thấy rằng location.host là một tùy chọn tốt hơn vì nội dung của nó có thể khác với document.domain. Ví dụ: url http://192.168.1.80:8080 sẽ chỉ có ipaddress trong document.domain, nhưng cả ipaddress và số cổng trong location.host.

+1

Đây có phải là một thực hành tốt? –

+7

@ rob.alarcon Đó là [khuyến cáo của W3C] (http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-2250147) và có sự hỗ trợ rất rộng giữa các trình duyệt, cũ và Mới. Vấn đề duy nhất tôi biết là một số trình duyệt ([như Firefox] (https://developer.mozilla.org/en-US/docs/DOM/document.domain#Notes)) sẽ cho phép bạn ghi vào thuộc tính này (chỉ đọc cho mỗi thông số kỹ thuật) miễn là giá trị mới là tên miền phụ của miền gốc. – Sampson

+4

Tôi thực sự khuyên bạn nên sử dụng 'window.location.host' (như bibby được đăng). Tôi vừa sửa một lỗi trong đó 'document.domain' đã được đặt thành miền gốc thay vì tên miền phụ. –

33

Tương tự như các câu trả lời trước khi có có

location.host 

Vị trí toàn cầu có sự kiện thú vị hơn về url hiện tại là tốt. (Giao thức, máy chủ, cổng, tên đường dẫn, tìm kiếm, băm)

20

Nếu bạn cần từ chuỗi, như tôi, hãy sử dụng chức năng này - nó thực sự hoạt động.

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

Nhưng lưu ý, nếu có tên miền phụ (ví dụ: www.) Trong URL, URL này sẽ được trả lại bằng tên máy chủ. Ngược lại, nếu không có tên miền phụ, tên máy chủ cũng sẽ không có tên miền phụ.

+0

@Vova Popov (hoặc ai đó) có thể làm rõ câu cuối cùng không? "www. ar không có www."?!? –

+2

Anh ấy nói rằng a.hostname sẽ trả về www. đó là một phần của miền của bạn. Nói cách khác, điều này sẽ là sai: 'getHost ('http://www.google.com') == 'google.com'' trong khi điều này sẽ đúng:' getHost (' http://google.com ') ==' google.com'' – Milimetric

5

jQuery là không cần thiết, sử dụng javascript đơn giản:

document.domain 
-1
//If url is something.domain.com this returns -> domain.com 
function getDomain() { 
    return window.location.hostname.replace(/([a-z]+.)/,""); 
} 
-3
//If url is something.domain.com this returns -> domain.com 
function getDomain() { 
    return window.location.hostname.replace(/([a-zA-Z0-9]+.)/,""); 
} 
+3

nhưng nếu url không có tiền tố, nó sẽ xóa tên miền .. Ví dụ: "stackoveflow.com" sẽ trở thành "com" – Filipiz

+0

'Một số người, khi đối mặt với một vấn đề, suy nghĩ "Tôi biết, tôi sẽ sử dụng các biểu thức thông thường." Bây giờ họ có hai vấn đề.' - Jamie Zawinski – msangel

106

Bạn có thể nhận được tất cả điều này và nhiều hơn nữa bằng cách kiểm tra các đối tượng vị trí:

location = { 
    host: "stackoverflow.com", 
    hostname: "stackoverflow.com", 
    href: "http://stackoverflow.com/questions/2300771/jquery-domain-get-url", 
    pathname: "https://stackoverflow.com/questions/2300771/jquery-domain-get-url", 
    port: "", 
    protocol: "http:" 
} 

vậy:

location.host 

sẽ là tên miền, trong trường hợp này là stackoverflow.com. Đối với phần hoàn chỉnh đầu tiên của url, bạn có thể sử dụng:

location.protocol + "//" + location.host 

mà trong trường hợp này sẽ là http://stackoverflow.com

Không jQuery yêu cầu.

+0

http://stackoverflow.com/questions/6549117/whats-the-difference-between-window-location-host-and-window-location-hostname –

0

việc kiểm tra này

alert(window.location.hostname);

này sẽ trả lại tên máy chủ như www.domain.com

3

document.baseURI cung cấp cho bạn tên miền + cổng. Nó được sử dụng nếu một thẻ hình ảnh sử dụng một tương đối thay vì một đường dẫn tuyệt đối. Có lẽ đã được giải quyết, nhưng nó có thể hữu ích cho những kẻ khác.

8

Bạn có thể sử dụng dưới mã cho lấy các tham số khác nhau của URL hiện tại

alert("document.URL : "+document.URL); 
alert("document.location.href : "+document.location.href); 
alert("document.location.origin : "+document.location.origin); 
alert("document.location.hostname : "+document.location.hostname); 
alert("document.location.host : "+document.location.host); 
alert("document.location.pathname : "+document.location.pathname); 
+0

Hành động: http : //jsfiddle.net/qtjk3bzd/ – eddyparkinson

+0

cũng có cách để tải máy chủ lưu trữ nơi tệp js được lưu trữ thay vì tài liệu không? ATM. Tôi đang thao tác phía máy chủ tập tin js để có được chuỗi "kết nối" này hoạt động nhưng có vẻ không hiệu quả vì tôi thích tệp js tĩnh hơn. – yellowsir

2
var part = location.hostname.split('.'); 
var subdomains = part.shift(); 
var upperleveldomains = part.join('.'); 

thứ hai cấp tên miền, bạn có thể sử dụng

var sleveldomain = parts.slice(-2).join('.'); 
Các vấn đề liên quan