geçerli sayfadan javascript kullanarak ana bilgisayar url'si nasıl alınır


Yanıtlar:


319
var host = window.location.hostname;

veya muhtemelen

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

veya bitiştirmeyi seviyorsanız

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

3
Belki de belirtmeyin http. Göreli protokolü kullanın. Sert kodlayandan daha uygun olabilir.
Darth Egregious

33
Hostname yerine window.location.host kullanın, ya da port 80 değilse başarısız olacaktır.
Stefan Steiger

1
@MattBrowne Bir dize üretecek bir şeyle çalışırken her zaman kullanmanız gerektiğini söyleyebilirim concat. Örneğin var a = 1 + 2 + " should be 12";bunun concat versiyonuna karşı var a = "".concat(1).concat(2).concat(" should be 12");. Concat kullanmak +, birleştirme için değil, hesaplama için çok fazla sorun kurtaracaktır .
Eric Herlitz

3
hostnameyalnızca alan adı verir ve hostbağlantı noktası da sağlar. Bu bağlantı anatomisini görmek için harika bir mini araç bl.ocks.org/abernier/3070589
Lukas Liesis

4
window.location.origin de iyi çalışır - protokolü ve bağlantı noktasını içerir.
rothschild86

96

Ana bilgisayar adını almak için: location.hostname

Ancak örneğiniz de şemayı arıyor, bu nedenle location.originChrome'da istediğinizi yapıyor gibi görünüyor, ancak Mozdev dokümanlarında bahsedilmiyor. İle inşa edebilirsiniz

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

Bağlantı noktası numarasını da istiyorsanız (80 olmadığında):

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

Firefox 4, Chrome 12'de bulunmasına rağmen görünmüyor. Bir spesifikasyonda tanımlanmış mı?
Delan Azabani

Merhaba .. Liman almak için, örnek bir cazibe gibi çalıştı .. Bunun için teşekkürler
karthik k

FF,
21.0'dan

67

Bunu kullanarak protokolü, ana bilgisayarı ve bağlantı noktasını alabilirsiniz:

window.location.origin

Tarayıcı Uyumluluğu

Masaüstü

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

seyyar

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

Tüm tarayıcı uyumluluğu Mozilla Developer Network'ten


4
IE bunu desteklemiyor söz etmeliyim.
Monso

Lütfen bunun yeni bir özellik olduğunu ve eski tarayıcılar tarafından desteklenmediğini belirtin.
kabirbaidhya

@kabirbaidhya Nasıl ayrıntılı uyumluluk hakkında!
Muson

İyi. Ancak, MDN adamları daha yeni tarayıcı sürümlerinde sıklıkla görülen tarayıcı uyumluluk tablosunu güncellediğinde ne olur. Tablolarıyla senkronize etmek için bunu güncellemeye devam etmeniz gerekebilir;).
kabirbaidhya

Aslında, bu en son değil ve baktıkları tüm tarayıcılar bunu destekleyecek en eski bilinen sürümlerdir. Bu, yalnızca başka bir tarayıcı dahil etmeye karar verdiklerinde, desteklenen tarayıcıların bazılarındaki sürüm numaralarını anlayabilir;
Monso

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


5

İhtiyaçlarınıza bağlı olarak, window.locationözelliklerden birini kullanabilirsiniz . Sorunuzda (örn. ) Kullanılarak alınabilecek ana bilgisayar hakkında soruyorsunuz . Örneğinizde , (ör. ) Kullanılarak alınabilecek, başlangıç adı verilen bir şey gösteriyorsunuz .window.location.hostnamewww.example.comwindow.location.originhttp://www.example.com

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

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

2

Amaca bağlı olarak bunu beğendim

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

Herhangi bir url dizesine uygulayabilirsiniz

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"

URL dizesinden protokolü, etki alanını ve yolu kaldırma (göreceli yol)

var arr = url.split("/");
if (arr.length>3)
   "/" + arr.splice(3, arr.length).join("/") == "/sub1/sub2/mypage.html?q=12"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.