Mevcut URL JavaScript ile alınsın mı?


Yanıtlar:


3685

kullanın:

window.location.href 

Yorumlarda belirtildiği gibi, aşağıdaki satır çalışır, ancak Firefox için hata alır.

document.URL;

Salt okunur olarak DOMString türündeki URL'ye bakın .


142
Firefox 12'de document.URLtesiste sonra güncelleme yok window.locationederken, bir çapa (#) için window.location.hrefyapar. Burada canlı bir demo hazırladım : jsfiddle.net/PxgKy Firefox'un diğer sürümlerini test etmedim. document.URLChrome 20 ve IE9'da kullanımda sorun bulunamadı.
Telmo Marques

88
Ayrıca ev sahibi ve net bir konum elde edebilirsiniz: window.location.hostvewindow.location.href.toString().split(window.location.host)[1]
ali youhannaei

8
ve document.baseURIo zaman ne olacak. Temelde url almak için 3 yol vardır document.baseURI, document.URL& location.
Muhammed Umer

20
-1: ile bir çerçeve, resim veya formunuz varsa, name="URL"bu özellik documentnesnenin üzerinde gölgelenecek ve kodunuz kırılacaktır. Bu durumda, document.URLbunun yerine DOM düğümüne atıfta bulunacaktır. Global nesnenin özelliklerini olduğu gibi kullanmak daha iyidir window.location.href.
Roy Tinker

13
"window.location.href" kazanmak için
GabrielBB

662

URL Bilgisi Erişimi

JavaScript, tarayıcının adres çubuğunda görüntülenen geçerli URL'yi almak ve değiştirmek için birçok yöntem sunar. Tüm bu yöntemler, Locationnesnenin bir özelliği olan Windownesneyi kullanır. LocationAşağıdaki gibi geçerli URL'ye sahip yeni bir nesne oluşturabilirsiniz :

var currentLocation = window.location;

Temel URL Yapısı

<protocol>//<hostname>:<port>/<pathname><search><hash>
  • protokol: İnternette kaynağa erişmek için kullanılacak protokol adını belirtir. (HTTP (SSL olmadan) veya HTTPS (SSL ile))

  • hostname: Ana bilgisayar adı, kaynağın sahibi olan ana bilgisayarı belirtir. Örneğin www.stackoverflow.com,. Bir sunucu, ana bilgisayarın adını kullanarak hizmetler sağlar.

  • port: İnternet veya başka bir şebeke mesajının bir sunucuya ulaştığında iletileceği belirli bir işlemi tanımak için kullanılan bir port numarası.

  • pathname: Yol, ana istemcideki Web istemcisinin erişmek istediği kaynak hakkında bilgi verir. Örneğin,/index.html ,.

  • arama: Bir sorgu dizesi yol bileşenini izler ve kaynağın bir amaç için kullanabileceği bir bilgi dizesi sağlar (örneğin, bir arama parametresi olarak veya işlenecek veri olarak).

  • hash: Bir URL'nin bağlantı kısmı, karma işaretini (#) içerir.

Bu Locationnesne özellikleriyle, bu URL bileşenlerinin tümüne ve ayarlayabilecekleri veya döndürebileceklerine erişebilirsiniz:

  • href - URL'nin tamamı
  • protokol - URL protokolü
  • host - URL'nin ana bilgisayar adı ve bağlantı noktası
  • hostname - URL'nin host adı
  • Liman - sunucunun URL için kullandığı port numarası
  • yol adı - URL'nin yol adı
  • arama - URL'nin sorgu kısmı
  • esrar - URL'nin bağlantı kısmı

Umarım cevabını almışsındır ..


7
Bunlar arasında "yöntemleri" değildir window.location, ama özellikleri ve burada bir örnek var : var stringPathName = window.location.pathname.
Peter Krauss

@FabioC. Tarafından kaldırabilirsiniz substring. Ancak, yeniden yönlendirmek için kullanmak istediğinizde document.location = "/page.html";kök sayfaya yönlendirecektirpage.html
FindOut_Quran

1
Bu sadece belirtilen sorudan daha fazlasını cevaplar. Aslında, yaklaşık bir ay önce URL dizesinden bir veya daha fazla belirli parça almanın iyi bir yolunu aradım (muhtemelen almaya çalıştığım sayfa olduğunu düşünüyorum) ve diğer sorular daha fazla olmasına rağmen -hedef, cevapları bu amaç için bu kadar kullanışlı ve basit değildi.
Panzercrisis

1
Ancak hızlı bir öneri: Yukarıda açıklanan temel URL yapısında bir nokta var search, ancak aşağıdaki açıklamalar listesinde buna a denir query. Belki uzlaştırılabilir ya da daha fazla açıklama eklenebilir.
Panzercrisis

1
Buna 'arama' değil 'sorgu' denir
Apollo Data


264

Geçerli sayfa URL'sini alır:

window.location.href

3
Belgenin değil, pencerenin konumu olduğunu unutmayın.
Gumbo

16
Aynı şey. Tam geçerli URL, doküman yolunu (harici adres) ifade eder.
Zanoni

2
Document.url gibi standartlaştırılmış mı? (Bir w3c belgesi gibi bir şey demek istiyorum)
chendral

documentspec tarafından tanımlanan belge ağacının köküdür. windowgenellikle eşdeğerdir, ancak bazı garip durumlarda olmayabilir.
broinjc

57

Tamam, saf JavaScript kullanarak geçerli sayfanın tam URL'sini almak kolaydır. Örneğin, şu sayfada bu kodu deneyin:

window.location.href;
// use it in the console of this page will return
// http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser"

window.location.hrefÖzellik geçerli sayfanın URL'sini döndürür.

document.getElementById("root").innerHTML = "The full URL of this page is:<br>" + window.location.href;
<!DOCTYPE html>
<html>

<body>
  <h2>JavaScript</h2>
  <h3>The window.location.href</h3>
  <p id="root"></p>
</body>

</html>

Bunlardan da bahsetmek fena değil:

  • göreli bir yola ihtiyacınız varsa, sadece şunu kullanın window.location.pathname;

  • ana bilgisayar adını almak istiyorsanız, kullanabilirsiniz window.location.hostname;

  • ve protokolü ayrıca edinmeniz gerekiyorsa, window.location.protocol

    • Sayfanız varsa da, hashetiketini, hoşuna alabilirsiniz: window.location.hash.

Yani window.location.hrefhepsi bir arada işler ... temel olarak:

window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.hash === window.location.href;
    //true

windowZaten pencere kapsamındaysa da kullanmak gerekmez ...

Bu durumda, şunları kullanabilirsiniz:

location.protocol

location.hostname

location.pathname

location.hash

location.href

Geçerli URL'yi JavaScript ile alın


window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.hash === window.location.href; her zaman doğru değildir! window.location.pathname'de GET parametreleri eksik.
AssassiN

40

Yolu almak için şunları kullanabilirsiniz:

console.log('document.location', document.location.href);
console.log('location.pathname',  window.location.pathname); // Returns path only
console.log('location.href', window.location.href); // Returns full URL


35

Geliştirici Araçları'nı açın , konsolda aşağıdakileri yazın ve Enter tuşuna basın .

window.location

Örn: Aşağıda, geçerli sayfadaki sonucun ekran görüntüsü yer almaktadır.

resim açıklamasını buraya girin

İhtiyacınız olanı buradan alın. :)


29

kullanın: window.location.href .

Yukarıda belirtildiği gibi, document.URL güncelleme sırasında güncellenmez window.location. Bkz. MDN .


21
  • kullanım window.location.hrefTam URL'yi almak için .
  • window.location.pathnameURL'yi ana bilgisayardan ayrılmak için kullanın .

4
window.location.pathname sorgu ve karma parçasını
içermiyor


10
var currentPageUrlIs = "";
if (typeof this.href != "undefined") {
       currentPageUrlIs = this.href.toString().toLowerCase(); 
}else{ 
       currentPageUrlIs = document.location.toString().toLowerCase();
}

Yukarıdaki kod birisine de yardımcı olabilir


2
Gerçekten değiştiren URL'ye .toLowerCase () uyguladınız. Bazı sunucular büyük / küçük harfe duyarlıdır, (linux vb.)
AnthonyVO

Window.href'i ayrıntılı olarak kullanmalısınız. Bu kod yalnızca bu === penceresinin bulunduğu bir bağlamda çalışır, ancak özellikle birisi bu çözümü yapıştırdığında her zaman böyle olmayabilir.
deadboy

Büyük / küçük harfe duyarlı "bazı" sunucular değildir. ÇOK sunucu. Bu yüzden AnthonyVO ile aynı fikirdeyim: URL'nin durumunu değiştirmek çok kötü bir fikir.
mivk

Bir URL'yi kırmamak için emin olduğunuz bir URL'yi toLowerCase () yapamazsınız !!! URL ise http://www.server.com/path/to/Script.php?option=A1B2C3, dosya sistemi büyük / küçük harfe duyarlıysa (Linux / Unix) mutlaka Script.php ve script.php aynı değildir. Ve büyük / küçük harfe duyarlı olmasa bile (Windows, bazı Mac Os), ?option=A1B2C3aynı ?option=a1b2c3veya hatta değildir ?Option=A1B2C3. Yalnızca sunucu büyük / küçük harfe duyarlı değildir: www.server.com veya www.SeRvEr.cOm aynıdır.
FrancescoMM

8

Hızlı başvuru için sonuç ekleme

window.location;

 Location {href: "/programming/1034621/get-the-current-url-with-javascript",
 ancestorOrigins: DOMStringList,
 origin: "https://stackoverflow.com",
 replace: ƒ, assign: ƒ, …}

document.location

  Location {href: "/programming/1034621/get-the-current-url-with-javascript", 
ancestorOrigins: DOMStringList,
 origin: "https://stackoverflow.com",
 replace: ƒ, assign: ƒ
, …}

window.location.pathname

"/questions/1034621/get-the-current-url-with-javascript"

window.location.href

"/programming/1034621/get-the-current-url-with-javascript"

location.hostname

"stackoverflow.com"

7

Sorgu dizeleri içeren tam URL için:

document.location.toString().toLowerCase();

Ana makine URL'si için:

window.location

11
Gerçekten değiştiren URL'ye .toLowerCase () uyguladınız. Bazı sunucular büyük / küçük harfe duyarlıdır, (linux vb.)
AnthonyVO

Söylendiği gibi, kırmak için emin bir URL toLowerCase () olamaz !!! URL sunucu.com/path/to/Script.php?option=A1B2C3 ise, dosya sistemi büyük / küçük harfe duyarlıysa (Linux / Unix) mutlaka Script.php ve script.php aynı değildir. Ve büyük / küçük harfe duyarlı olmasa bile (Windows, bazı Mac OS),? Option = A1B2C3?? = A1b2c3, hatta? Option = A1B2C3 ile aynı değildir. Yalnızca sunucu büyük / küçük harfe duyarlı değildir: www.server.com veya www.SeRvEr.cOm aynıdır.
FrancescoMM

Bunu işaret ettiğin için teşekkürler AnthonyVO. Tam URL'yi almak için yalnızca document.location.toString () yöntemini kullanabiliriz. toLowerCase (), betiğinizdeki indexOf ile karşılaştırılacaktı.
Syed Nasir Abbas

4

Jstl içinde geçerli URL yoluna şunu kullanarak erişebiliriz pageContext.request.contextPath. Bir Ajax çağrısı yapmak istiyorsanız, aşağıdaki URL'yi kullanın.

url = "${pageContext.request.contextPath}" + "/controller/path"

Örnek: Sayfa için http://stackoverflow.com/posts/36577223bu verilecektir http://stackoverflow.com/controller/path.


4

Geçerli konum nesnesini almanın yolu window.location.

Bunu document.location, başlangıçta yalnızca geçerli URL'yi dize olarak döndüren ile karşılaştırın . Muhtemelen karışıklığı önlemek document.locationiçin ile değiştirildi document.URL.

Ve, tüm modern tarayıcılar haritasına document.locationiçin window.location.

Gerçekte, tarayıcılar arası güvenlik için kullanmak window.locationyerine kullanmak zorundasınız document.location.



3

Nikhil Agrawal'ın cevabı harika, burada farklı bileşenleri çalışırken görmek için konsolda yapabileceğiniz küçük bir örnek ekliyoruz:

resim açıklamasını buraya girin

Yol veya sorgu parametresi olmadan temel URL'yi istiyorsanız (örneğin, geliştirme / aşamalandırma ve üretim sunucuları üzerinde çalışmak için AJAX istekleri yapmak), window.location.originprotokolü ve isteğe bağlı bağlantı noktasını (Django geliştirmesinde bazen yalnızca ana bilgisayar adı vb. kullanırsanız onu bozan standart dışı bir bağlantı noktasına sahip olmanız gerekir.)


0
   location.origin+location.pathname+location.search+location.hash;

0

Geçerli sayfanın tam bağlantısını location.href ve mevcut denetleyicinin bağlantısını almak için şunu kullanın:

location.href.substring(0, location.href.lastIndexOf('/'));

0

Geçerli URL'yi JavaScript ile alma:

  • ) (Window.location.toString;

  • window.location.href


0

kimliği olan belirli bir bağlantıya başvuruyorsanız, bu kod size yardımcı olabilir.

$(".disapprove").click(function(){
    var id = $(this).attr("id");

    $.ajax({
        url: "<?php echo base_url('index.php/sample/page/"+id+"')?>",
        type: "post",
        success:function()
        {
            alert("The Request has been Disapproved");
            window.location.replace("http://localhost/sample/page/"+id+"");
        }
    });
});

Burada bir kimlik göndermek ve window.location.replace kullanarak sayfayı yönlendirmek için ajax kullanıyorum . id=""belirtildiği gibi bir özellik eklemeniz yeterlidir.



-2

Öncelikle sayfanın tamamen yüklendiğini kontrol edin

browser,window.location.toString();

window.location.href

sonra url, URL değişkeni alan ve konsolda yazdırılan bir işlevi çağırır,

$(window).load(function(){
   var url = window.location.href.toString();
   var URL = document.URL;
   var wayThreeUsingJQuery = $(location).attr('href');
   console.log(url);
   console.log(URL);
   console.log(wayThreeUsingJQuery );
});
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.