Saya berencana membeli dua nama domain untuk situs yang sama. Bergantung pada domain mana yang digunakan, saya berencana menyediakan data yang sedikit berbeda pada halaman. Apakah ada cara bagi saya untuk mendeteksi nama domain sebenarnya dari mana halaman memuat sehingga saya tahu apa yang harus mengubah konten saya?
Saya sudah mencari-cari hal-hal seperti ini tetapi sebagian besar tidak berfungsi seperti yang saya inginkan.
Misalnya saat menggunakan
document.write(document.location)
di JSFiddle ia kembali
http://fiddle.jshell.net/_display/
yaitu jalan yang sebenarnya atau apa pun itu.
javascript
domain-name
Freesnöw
sumber
sumber
premium.random.com
danfree.random.com
Jawaban:
Bagaimana tentang:
The
location
objek sebenarnya memiliki sejumlah atribut mengacu pada bagian yang berbeda dari URLsumber
window.location.hostname
jika Anda tidak ingin mendapatkanport
(sepertihttp://localhost:3000/
,window.location.host = 'localhost:3000'
danwindow.location.hostname = 'localhost'
window.location.host
terkadang akan memberikan port kembali.Coba jalankan di skrip: path: http: // localhost: 4200 / landing? Query = 1 # 2
Lokasi memiliki nilai berikut:
sumber
Jika Anda tidak tertarik dengan nama host (misalnya
www.beta.example.com
) tetapi pada nama domain (misalnyaexample.com
), ini berfungsi untuk nama host yang valid:sumber
amazon.co.uk
. Tapi jelas bukan "hampir semua TLD internasional". Bahkan ia bekerja dengan 100% kode negara yang ditemukan di WikipediaContohnya
Versi sebelumnya mendapatkan domain lengkap (termasuk subdomain). Sekarang ini menentukan domain yang tepat tergantung pada preferensi. Sehingga ketika argumen ke-2 diberikan sebagai true, ia akan menyertakan subdomain, jika tidak, ia hanya mengembalikan 'domain utama'
sumber
localhost/test.php
dan itu jawaban yang benarlocalhost
.google.co.uk
untuk Anda akan mendapatkan 'co.uk' kembali, yang tidak benar ...Anda bisa mendapatkannya dari objek lokasi di Javascript dengan mudah:
Misalnya URL halaman ini adalah:
Kemudian kita bisa mendapatkan domain yang tepat dengan properti objek lokasi berikut:
Anda dapat membuat domain lengkap dengan:
Yang dalam contoh ini kembali
http://www.stackoverflow.com
Saya tambahan ini kita bisa mendapatkan URL lengkap dan juga path dengan properti lain dari objek lokasi:
sumber
Jika Anda hanya tertarik pada nama domain dan ingin mengabaikan subdomain maka Anda perlu menguraikannya dari
host
danhostname
.Kode berikut melakukan ini:
http://jsfiddle.net/5U366/4/
sumber
Karena pertanyaan ini menanyakan nama domain, bukan nama host, jawaban yang benar seharusnya
Ini berfungsi untuk nama host seperti www.example.com juga.
sumber
Menggunakan
window.location
memiliki banyak properti. Lihat di sini untuk daftar mereka.sumber
Jika Anda menginginkan asal domain lengkap, Anda dapat menggunakan ini:
Dan jika Anda hanya ingin mendapatkan domain, gunakan ini untuk Anda saja:
Tetapi Anda memiliki opsi lain, lihat properti di:
sumber
Bagaimana dengan fungsi ini?
Ini hanya akan cocok dengan nama domain, terlepas dari apakah itu subdomain atau domain utama
sumber
Jika Anda ingin mendapatkan nama domain dalam JavaScript, cukup gunakan kode berikut:
Jika Anda perlu jalur URL halaman web sehingga Anda dapat mengakses jalur URL web gunakan contoh ini:
sumber
untuk kasus saya yang paling cocok adalah window.location.origin
sumber
Saya baru mengenal JavaScript, tetapi tidak bisakah Anda menggunakan: document.domain ?
Contoh:
Keluaran:
atau
Tergantung pada apa yang Anda gunakan di situs web Anda.
sumber
Saya pikir itu harus sesederhana ini:
url.split("/")[2]
sumber
Menggabungkan beberapa jawaban dari yang di atas, berikut ini bekerja dengan sangat baik bagi saya untuk menghancurkan Cookies:
Bekerja untuk alamat IP dengan port, misalnya, 0.0.0.0:8000 dll, serta domain kompleks seperti
app.staging.example.com
pengembalian.example.com
=> memungkinkan pengaturan dan penghancuran cookie lintas domain.sumber
Jika Anda ingin nama domain negara - misalnya untuk mengekstrak .com dari stackoverflow.com:
(ES6):
(ES5):
Kemudian, cukup gunakan fungsi untuk menetapkan nilai ke var:
sumber
Memang bekerja untuk saya sedangkan saya tidak bisa menggunakan PHP
Hanya diuji bahwa itu berhasil berkat pendekatan yang disebutkan di atas dalam beberapa jawaban, begitu cepat dan terverifikasi yang berhasil
sumber