cara mendapatkan url host menggunakan javascript dari halaman saat ini


Jawaban:


319
var host = window.location.hostname;

atau mungkin

var host = "http://"+window.location.hostname;

atau jika Anda suka penggabungan

var protocol = location.protocol;
var slashes = protocol.concat("//");
var host = slashes.concat(window.location.hostname);

3
Mungkin tidak menentukan secara spesifik http. Gunakan protokol relatif. Mungkin lebih tepat daripada hard-coding.
Darth Egregious

33
Gunakan window.location.host daripada hostname, atau itu akan gagal jika port tidak 80.
Stefan Steiger

1
@MattBrowne Ketika bekerja dengan sesuatu yang akan menghasilkan string saya katakan Anda harus selalu menggunakan concat. Sebagai contoh var a = 1 + 2 + " should be 12";vs versi concat ini var a = "".concat(1).concat(2).concat(" should be 12");. Menggunakan concat akan menghemat banyak masalah +untuk perhitungan, bukan penggabungan.
Eric Herlitz

3
hostnamehanya akan memberikan domain dan hostakan menyediakan port juga. Ini adalah alat mini yang hebat untuk melihat tautan anatomi bl.ocks.org/abernier/3070589
Lukas Liesis

4
window.location.origin bekerja dengan baik juga - termasuk protokol dan porta.
rothschild86

96

Untuk mendapatkan nama host: location.hostname

Tetapi contoh Anda sedang mencari skema juga, jadi location.origintampaknya melakukan apa yang Anda inginkan di Chrome, tetapi tidak disebutkan dalam dokumen Mozdev. Anda dapat membangunnya dengan

location.protocol + '//' + location.hostname

Jika Anda menginginkan nomor port juga (untuk saat tidak 80) maka:

location.protocol + '//' + location.host

Firefox 4 tampaknya tidak memilikinya, meskipun Chrome 12 memilikinya. Apakah ini didefinisikan dalam spesifikasi?
Delan Azabani

Hai..Untuk mendapatkan porta, contohnya bekerja seperti pesona .. Terima kasih untuk itu
karthik k

FF mendukung location.origin sejak 21.0: developer.mozilla.org/en-US/docs/Web/API/Window.location
zifot

67

Anda bisa mendapatkan protokol, host, dan port menggunakan ini:

window.location.origin

Kompatibilitas browser

Desktop

| Chrome                           | Edge  | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit)                            |
|----------------------------------|-------|-----------------|-------------------|-------|--------------------------------------------|
| (Yes)                            | (Yes) | (Yes)           | (Yes)             | (Yes) | (Yes)                                      |
| 30.0.1599.101 (possibly earlier) | ?     | 21.0 (21.0)     | 11                | ?     | 7 (possibly earlier, see webkit bug 46558) |

Mobile

| Android                          | Edge  | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile                              |
|----------------------------------|-------|------------------------|----------|--------------|--------------------------------------------|
| (Yes)                            | (Yes) | (Yes)                  | (Yes)    | (Yes)        | (Yes)                                      |
| 30.0.1599.101 (possibly earlier) | ?     | 21.0 (21.0)            | ?        | ?            | 7 (possibly earlier, see webkit bug 46558) |

Semua kompatibilitas browser berasal dari Jaringan Pengembang Mozilla


4
Saya harus menyebutkan IE tidak mendukung ini.
Monso

Harap sebutkan bahwa ini fitur baru dan tidak didukung oleh browser lama.
kabirbaidhya

@kabirbaidhya Bagaimana dengan kompatibilitas verbose!
Monso

Baik. Tetapi apa yang terjadi ketika orang-orang MDN memperbarui tabel kompatibilitas browser, yang cukup sering terjadi dengan rilis browser yang lebih baru. Anda mungkin perlu terus memperbarui ini untuk menyinkronkan dengan tabel mereka;).
kabirbaidhya

Tidak juga, ini adalah versi yang paling awal untuk mendukungnya bukan yang terbaru dan semua browser yang mereka lihat sudah mendukungnya. Ini hanya akan berubah jika mereka memutuskan untuk memasukkan browser lain yang dapat mengetahui nomor versi pada beberapa browser yang didukung yang agak diperdebatkan karena sebagian besar yang lebih baru berasal dari rilis awal mereka.
Monso

7
let path = window.location.protocol + '//' + window.location.hostname + ':' + window.location.port;


5

Tergantung pada kebutuhan Anda, Anda dapat menggunakan salah satu window.locationproperti. Dalam pertanyaan Anda, Anda bertanya tentang tuan rumah , yang dapat diambil menggunakan window.location.hostname(misalnya www.example.com). Dalam contoh Anda, Anda menunjukkan sesuatu yang disebut asal , yang dapat diambil dengan menggunakan window.location.origin(misalnya http://www.example.com).

var path = window.location.origin + "/";

//result = "http://localhost:60470/"

2

Saya suka yang ini tergantung tujuannya

window.location.href.split("/")[2] == "localhost:17000" //always domain + port

Anda dapat menerapkannya pada url-string apa pun

var url = "http://localhost:17000/sub1/sub2/mypage.html?q=12";
url.split("/")[2] == "localhost:17000"
url.split("/")[url.split("/").length-1] == "mypage.html?q=12"

Menghapus protokol, domain & jalur dari url-string (jalur relatif)

var arr = url.split("/");
if (arr.length>3)
   "/" + arr.splice(3, arr.length).join("/") == "/sub1/sub2/mypage.html?q=12"
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.