jquery, domain, dapatkan URL


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.


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.



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


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.


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

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

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.


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('.');

1

Periksa ini

alert(window.location.hostname);

ini akan mengembalikan nama host sebagai www.domain.com


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

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

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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.