jquery, domain, dapatkan URL

140

Bagaimana saya bisa mendapatkan nama domain dengan jquery ??

AlexC
sumber

Jawaban:

335

Anda tidak perlu jQuery untuk ini, karena javascript sederhana sudah cukup:

alert(document.domain);

Lihat dalam aksi:

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

Untuk nilai terkait domain lebih lanjut, lihat properti window.locationonline. Anda mungkin menemukan itu location.hostadalah pilihan yang lebih baik, karena isinya bisa berbeda document.domain. Misalnya, url http://192.168.1.80:8080hanya memiliki ipaddress document.domain, tetapi juga ipaddress dan nomor port location.host.

Sampson
sumber
7
@ rob.alarcon Ini adalah rekomendasi W3C dan memiliki dukungan yang sangat luas di antara browser, lama dan baru. Satu-satunya masalah yang saya tahu adalah bahwa beberapa browser ( seperti Firefox ) akan membiarkan Anda menulis ke properti ini (hanya baca per spec) selama nilai baru adalah subdomain dari domain asli.
Sampson
4
Saya benar-benar akan merekomendasikan menggunakan window.location.host(seperti yang dipajang bibby). Saya baru saja memperbaiki bug di mana document.domainsedang diatur ke domain root alih-alih subdomain.
Derek Morrison
Dalam document.location.originpengembalian IE11 undefined.
TimothyBuktu
113

EDIT:

Jika Anda tidak perlu mendukung IE10, Anda cukup menggunakan: document.location.origin

Jawaban orisinal, jika Anda memerlukan dukungan sebelumnya

Anda bisa mendapatkan semua ini dan lebih banyak lagi dengan memeriksa objek lokasi:

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:"
}

begitu:

location.host 

akan menjadi domain, dalam hal ini stackoverflow.com. Untuk bagian pertama lengkap dari url, Anda dapat menggunakan:

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

yang dalam hal ini adalah http://stackoverflow.com

Tidak diperlukan jQuery.

superluminary
sumber
@ Untuk url lengkap, mengapa tidak menggunakan document.location.originyang akan menghasilkan https://stackoverflow.com . Metode ini mencakup protokol yang sesuai
Nathileo
33

Mirip dengan jawaban sebelum ada

location.host

Lokasi global juga memiliki lebih banyak fakta menyenangkan tentang url saat ini. (protokol, host, port, pathname, pencarian, hash)

bibby
sumber
20

Jika Anda membutuhkan dari string, seperti saya, gunakan fungsi ini - itu benar-benar berfungsi.

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

Tetapi perhatikan, jika ada subdomain (mis. Www) di URL itu akan dikembalikan dengan nama host. Sebaliknya, jika tidak ada subdomain, nama host juga tidak akan memiliki satu.

Vova Popov
sumber
Bisakah @Vova Popov (atau seseorang) memperjelas kalimat terakhir? "www. ar no www."?!?
Randall Cook
2
Dia mengatakan bahwa a.hostname akan mengembalikan www. itu bagian dari domain Anda. Jadi dengan kata lain, ini akan salah: getHost('http://www.google.com') == 'google.com'padahal ini benar:getHost('http://google.com') == 'google.com'
Milimetri
9

Anda dapat menggunakan kode di bawah ini untuk mendapatkan berbagai parameter URL Saat Ini

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);
Nimesh07
sumber
apakah ada juga cara untuk mendapatkan host di mana file js di-host bukan dokumen? ATM. Saya memanipulasi sisi server file js untuk mendapatkan string "koneksi" ini yang berfungsi tetapi terlihat tidak efisien karena saya lebih suka file statis js.
yellowsir
6

jQuery tidak diperlukan, gunakan javascript sederhana:

document.domain
Adam
sumber
mungkin tidak membutuhkannya tetapi mengatakan seperti itu Anda tidak menjawab pertanyaan
Emiliano
Ya, saya bukan robot yang menjawab pertanyaan secara harfiah. Saya menjawab pertanyaan secara pragmatis dengan mengetahui apa tujuan akhirnya dan bahwa Anda tidak perlu jQuery untuk mencapai tujuan.
Adam
Saya mengerti tetapi jawaban semacam itu tidak lengkap, jika mau, Anda dapat melakukan jawaban yang lebih baik
Emiliano
3

document.baseURImemberi Anda domain + port. Ini digunakan jika tag gambar menggunakan relatif bukan jalur absolut. Mungkin sudah dipecahkan, tetapi mungkin bermanfaat untuk cowok lain.

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

domain tingkat kedua, mungkin Anda gunakan

var sleveldomain = parts.slice(-2).join('.');
Muhammad Mohsin Muneer
sumber
1

Periksa ini

alert(window.location.hostname);

ini akan mengembalikan nama host sebagai www.domain.com

code.rider
sumber
0

sejauh yang saya lihat tidak ada yang diposting solusi jquery selain kode javascript asli.

Anda harus melewatkan URL sebagai string dan itu akan mendapatkan host tanpa menggunakan regexp.

function getHostFromUrl(urlString) {
    return $a = $('<a>', {
        'href': urlString
    }).prop('host');
}
Zoltán Süle
sumber
-2
//If url is something.domain.com this returns -> domain.com
function getDomain() {
  return window.location.hostname.replace(/([a-z]+.)/,"");
}
Gubatron
sumber
-4
//If url is something.domain.com this returns -> domain.com
function getDomain() {
  return window.location.hostname.replace(/([a-zA-Z0-9]+.)/,"");
}
Gubatron
sumber
3
tetapi jika url sudah tidak memiliki awalan, itu akan menghapus nama domain .. Contoh: "stackoveflow.com" akan menjadi "com"
Filipiz
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.- Jamie Zawinski
msangel