Soru JavaScript’te mevcut URL’yi al


JQuery kullanıyorum. Geçerli URL'nin yolunu nasıl alabilirim ve bir değişkene nasıl atayabilirim?

Örnek URL:

http://localhost/menuname.de?foo=bar&number=0

1584
2018-01-02 06:42


Menşei


ayrıca görebilirsin tech-blog.maddyzone.com/javascript/... - Rituraj ratan
Ben jQuery sormak için soru geri yüklenmelidir düşünüyorum, jQuery görevi gerçekleştirmek için gerekli olup olmadığına bakılmaksızın, bunun için bir cevap var. - goodeye
olası kopyası Mevcut URL’yi JavaScript’le al? - vimal1083
@goodeye Hayır, konumu almak için jQuery yolu yoktur; jQuery hata izleyicisinden: »Çalışmış olabilir, ancak hiçbir zaman desteklenmemiş veya belgelenmemiştir. Daha basit, daha basit ve anlaşılması kolay olan document.location.href dosyasını kullanın. «Diğer bir deyişle, bazı insanlar konumu almak için jQuery'yi kullandılar, ancak özellikten ziyade bir hataya dayandılar. Görmek: bugs.jquery.com/ticket/7858 - feeela


Cevaplar:


Yolu almak için şunları kullanabilirsiniz:

var pathname = window.location.pathname; // Returns path only
var url      = window.location.href;     // Returns full URL

2134
2018-01-02 06:57



Yer nesnesinin özellikleri: developer.mozilla.org/en/DOM/window.location - bentford
Öldürmekten çok, jQuery'nin Javascript'i yeni bir hayat verdi. Yeni C # / Java programcıları işaretçileri anlıyor mu? Hayır. Gerekir mi? Pek değil, daha yeni soyutlamalar, onun için önemli değil. - flesh
"JQuery'de nasıl XYZ yapabilirim" cevabı ve sade javascript olması oldukça yaygın. Düz javascript içerisinde bir şeyi nasıl yapacağınızı bilebilirsiniz; Ancak, tarayıcı tutarsızlıkları nedeniyle "jQuery" yöntemini tercih edebilirsiniz. Önceden jQuery'yi veya çerçeveyi ilk önce tarayıcıyı kontrol edip sonra bir avuç yol istediğimi yapıyorum. Yani jQuery sade js öldürüyor ... evet, tanrıya şükür, ama aynı zamanda kullanılabilir hale getiriyor. - Parris
Bu, tam URL için çalışmaz. Örneğin. için "mail.google.com/mail/u/0/#mbox/13005b79fe72f448"; Bu sadece / mail / u / 0 değerini döndürecek - dwaynemac
Ummm, ... window.location.pathname sadece URL'yi "?" Alır ve sorudaki param sorgularını sormaz. - johntrepreneur


Saf jQuery tarzında:

$(location).attr('href');

Yer nesnesi ayrıca, ana bilgisayar, karma, protokol ve yol adı gibi başka özelliklere de sahiptir.


778
2018-05-19 12:42



Görünüşe göre, jQuery'de $ (location) kullanılarak desteklenmiyor ve şu sorulara karşı tavsiye ediliyor: bugs.jquery.com/ticket/7858 - Peter
@Peter Bug geçersiz olarak kapatıldı. - mc10
@ mc10: "Geçersiz" bölüm, $ (konum) desteği için istek için geçerlidir; Bu kullanılmamalıdır. - Peter
Bu cevap gerekli değildir ve soru ve cevap jquery kullanmamak için güncellenebilir. Nedenleri burada bulunabilir bugs.jquery.com/ticket/7858#comment:4 - Vishwanath
@HaralanDobrev: Yapmamalıydın .attr() lokasyonda. (1) Bu bir element değil, $(location) en iyisi gölgedir ve (2) işe yaramış olsa bile kullanmalısınız .prop() özellikleri almak. .attr() HTML özellikleri içindir. - cHao


http://www.refulz.com:8082/index.php#tab2?foo=789

Property    Result
------------------------------------------
host        www.refulz.com:8082
hostname    www.refulz.com
port        8082
protocol    http:
pathname    index.php
href        http://www.refulz.com:8082/index.php#tab2
hash        #tab2
search      ?foo=789

var x = $(location).attr('<property>');

Bu sadece jQuery'niz varsa çalışır. Örneğin:

<html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js">
</script>
  $(location).attr('href');      // http://www.refulz.com:8082/index.php#tab2
  $(location).attr('pathname');  // index.php
</script>
</html>

431
2018-01-30 21:10



Bu, bir öncekinin, ama nesnenin tüm unsurlarıyla aynı açıklamadır. Mükemmel cevap. - Oskar Calvo
Olmalı /index.php yerine index.php yol adı için. - Andrea
+1 jQuery, bir salak kullanmıyorsanız, en iyi kalite kodudur. jQuery kesinlikle gitmek için bir yoldur. </ Istihza> - Oriol
Şahsen, bunun en iyi cevap olduğuna inanıyorum. Tabii ki Javascript en iyisini deniyor, ama jQuery daha fazla kenar durumunu çözüyor, bu yüzden jQuery hala bu kadar popüler olmasına rağmen, uyumsuzlukları daha iyi anlamaya çalışıyor. Varsayımına göre, gelecek yıl yeni bir tarayıcı window.location'ı doğru kullanmıyor ve bu durumda param jQuery'de olacaktı. Evet, Javascript 1994'ten beri gelişti, ama şimdi akıllı telefonlar, tabletler, pek çok tarayıcı, daha fazla kenar vakası var. Yeni geliştiricilerin jQuery'yi "eski yol" olarak adlandırmaktan duydukları komik bir şey olsa da, daha sonra onların saf Javascript kodları bir mobil tarayıcıda bozulur. - PJ Brunet
Göre bugs.jquery.com/ticket/7858 Bu sadece kaza ile çalışıyor. Ayrıca, attr HTML öznitelikleri kullanılarak ayarlanabilen şeyler için yalnızca DOM nesnelerinde kullanılmalıdır. - MauganRa


URL'de mevcut hash parametrelerine ihtiyacınız varsa, window.location.href daha iyi bir seçim olabilir.

window.location.pathname
=> /search

window.location.href 
 => www.website.com/search#race_type=1

57
2018-05-09 16:39



Birisi window.location.href çağırandan daha basit bir karma etiketi gerektiriyorsa - Amit Patel
Sanırım @AmitPatel demek window.location.hash - ptim


JavaScript'in yerleşik kullanımını kullanmak istersiniz window.location nesne.


45
2018-01-02 06:50



bu, '?' lokasyonda. - Majid
@majidgeek, Firefox, Chrome ve IE'de benim için çalışıyor. Bu kırılma hakkında bir test örneği verebilir misiniz? - Barney
en azından konsolda onaylayabilirsiniz window.location.pathname sonra hiçbir şey almaz ? - worc


Sadece bu işlevi JavaScript’e ekleyin ve mevcut yolun mutlak yolunu döndürür.

function getAbsolutePath() {
    var loc = window.location;
    var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/') + 1);
    return loc.href.substring(0, loc.href.length - ((loc.pathname + loc.search + loc.hash).length - pathName.length));
}

Umarım senin için çalışır.


36
2018-05-19 09:12



Bu, tembel bir şekilde kodlanmış bazı temel URL'lere sahip olduğum bir senaryo için harika bir yardımcı oldu. Kökünde '/' harfini takip etmemeyi ve yolun içine sokmamayı tercih ediyorum, bu yüzden ikinci satırı yaptım. var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/')); - cogdog


window.location, javascript’teki bir nesnedir. aşağıdaki verileri döndürür

window.location.host          #returns host
window.location.hostname      #returns hostname
window.location.path          #return path
window.location.href          #returns full current url
window.location.port          #returns the port
window.location.protocol      #returns the protocol

jquery'de kullanabilirsiniz

$(location).attr('host');        #returns host
$(location).attr('hostname');    #returns hostname
$(location).attr('path');        #returns path
$(location).attr('href');        #returns href
$(location).attr('port');        #returns port
$(location).attr('protocol');    #returns protocol

29
2018-04-06 09:54



Windows.location bir tür komik olsa da, window.location olmalıdır. - some-non-descript-user


Bu, birçok kişinin düşündüğünden daha karmaşık bir konudur. Birçok tarayıcı, yerleşik JavaScript konum nesnelerini ve bunlarla erişilebilen ilişkili parametreleri / yöntemleri destekler. window.location veya document.location. Ancak, Internet Explorer'ın farklı lezzetleri (6,7), bu yöntemleri aynı şekilde desteklemez.window.location.href? window.location.replace() desteklenmez), Internet Explorer'ı el ile tutmak için her zaman koşullu kod yazarak onlara farklı erişmeniz gerekir.

Dolayısıyla, jQuery'niz kullanılabilir ve yüklüyse, jQuery'yi (konum), diğerlerinin de belirttiği gibi, bu sorunları çözdüğünden de kullanabilirsiniz. Bununla birlikte, bir örnek için JavaScript aracılığıyla (yani, Google Haritalar API'sı ve konum nesnesi yöntemlerini kullanarak) bir istemci tarafı coğrafi konum yönlendirmesi yapıyorsanız, jQuery kitaplığının tamamını yüklemek ve koşul kodunuzu yazmak istemeyebilirsiniz. Internet Explorer / Firefox / etc'nin her sürümünü kontrol eder.

Internet Explorer, ön uç kodlayan kediyi mutsuz yapar, ancak jQuery bir süt tabağıdır.


25
2018-01-12 20:12



Ek olarak: bugs.jquery.com/ticket/8138. JQuery 1.8.0 kaynağında yorum var: // # 8138, IE document.domain ayarlanmışsa window.location alanından // alanına erişirken bir istisna atabilir. - Jan Święcki


Yalnızca ana makine adı için şunu kullanın:

window.location.hostname

24
2017-10-05 09:50