Câu trả lời:
Bạn không cần jQuery cho việc này, vì javascript đơn giản sẽ đủ:
alert(document.domain);
Xem 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);
Để biết thêm các giá trị liên quan đến tên miền, hãy xem các thuộc tính của window.location
trực tuyến. Bạn có thể thấy đó location.host
là một lựa chọn tốt hơn, vì nội dung của nó có thể khác với document.domain
. Chẳng hạn, 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
.
window.location.host
(như bibby đã đăng). Tôi vừa sửa một lỗi trong đó document.domain
đang được đặt thành tên miền gốc thay vì tên miền phụ.
document.location.origin
trả về undefined
.
BIÊN TẬP:
Nếu bạn không cần hỗ trợ IE10, bạn chỉ cần sử dụng: document.location.origin
Câu trả lời gốc, nếu bạn cần hỗ trợ di sản
Bạn có thể nhận được tất cả điều này và hơn thế nữa bằng cách kiểm tra đối tượng vị trí:
location = {
host: "stackoverflow.com",
hostname: "stackoverflow.com",
href: "http://stackoverflow.com/questions/2300771/jquery-domain-get-url",
pathname: "/questions/2300771/jquery-domain-get-url",
port: "",
protocol: "http:"
}
vì thế:
location.host
sẽ là tên miền, trong trường hợp này là stackoverflow.com. Đối với phần đầu tiên của url, bạn có thể sử dụng:
location.protocol + "//" + location.host
trong trường hợp này sẽ là http://stackoverflow.com
Không cần jQuery.
document.location.origin
sẽ dẫn đến https://stackoverflow.com . Phương pháp này bao gồm giao thức thích hợp
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ó một tên miền phụ (ví dụ www.) Trong URL, nó sẽ được trả về với 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.
getHost('http://www.google.com') == 'google.com'
trong khi điều này là đúng:getHost('http://google.com') == 'google.com'
Bạn có thể sử dụng các mã dưới đây để nhận các thông 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);
Không cần jQuery, sử dụng javascript đơn giản:
document.domain
var part = location.hostname.split('.');
var subdomains = part.shift();
var upperleveldomains = part.join('.');
tên miền cấp hai, bạn có thể sử dụng
var sleveldomain = parts.slice(-2).join('.');
theo như tôi thấy không ai đăng giải pháp jquery mà là mã javascript gốc.
Bạn phải vượt qua url dưới dạng một chuỗi và nó sẽ nhận được máy chủ mà không cần sử dụng regrec.
function getHostFromUrl(urlString) {
return $a = $('<a>', {
'href': urlString
}).prop('host');
}
//If url is something.domain.com this returns -> domain.com
function getDomain() {
return window.location.hostname.replace(/([a-zA-Z0-9]+.)/,"");
}
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
- Jamie Zawinski