JavaScript kullanarak bir sayfayı yeniden yükleme


874

JavaScript kullanarak sayfayı nasıl yeniden yükleyebilirim?

Tüm tarayıcılarda çalışan bir yönteme ihtiyacım var.

Yanıtlar:


946

JavaScript 1.0

window.location.href = window.location.pathname + window.location.search + window.location.hash;
// creates a history entry

JavaScript 1.1

window.location.replace(window.location.pathname + window.location.search + window.location.hash);
// does not create a history entry

JavaScript 1.2

window.location.reload(false); 
// If we needed to pull the document from
//  the web-server again (such as where the document contents
//  change dynamically) we would pass the argument as 'true'.

81
'true', sayfayı sunucudan yeniden yüklemeye zorlar. 'false' varsa önbellekten yeniden yüklenir.
barro32

3
.reload(true)Tarihe ekleniyor mu ? Eğer öyleyse, yeniden yükleme ile nasıl önlenir?
johntrepreneur


1
Bu en iyi yanıttır ve en üstte olmalıdır. Diğer işlevler ile benim sorun, onlar sunucudan içerik ile sayfayı yenilemek ve bunun yerine önbellek kullanarak değil bu yüzden JavaScript 1.2 çözüm benim için en iyi ve tek çözüm oldu.
Ryan Coolwebs

8
.reload (true) veya .reload (false) IDE'm uyarınca kullanımdan kaldırıldı ve github.com/Microsoft/TypeScript/issues/28898 - şimdi .reload ()
danday74

388
location.reload();

Daha fazla bilgi için bu MDN sayfasına bakın .

Birinden sonra onclickferahlıyorsanız, hemen sonra yanlış döndürmeniz gerekir

location.reload();
return false;

22
location.reload()ve arasındaki fark window.location.reload()nedir?
Raptor

53
@ShivanRaptor Genellikle hiçbiri, web tarayıcıları bağlamda, locationaynı window.locationşekilde windowküresel nesnedir.
Lekensteyn

1
bunu return false;bir bağlantıdaki bir onclick'den çağırmayı unutmayın .
Rimian

2
Yerel bir değişken olabileceği window.location.reload();gibi okunabilirlik için kullanmayı tercih ederim location- ancak genellikle ad değişkenlerinden kaçınırsınız window.
Yeti

218

İşte en kolay varlık olan JavaScript kullanarak sayfayı yeniden yüklemenin 535 yolulocation = location .

Bunlar ilk 50:

location = location
location = location.href
location = window.location
location = self.location
location = window.location.href
location = self.location.href
location = location['href']
location = window['location']
location = window['location'].href
location = window['location']['href']
location = window.location['href']
location = self['location']
location = self['location'].href
location = self['location']['href']
location = self.location['href']
location.assign(location)
location.replace(location)
window.location.assign(location)
window.location.replace(location)
self.location.assign(location)
self.location.replace(location)
location['assign'](location)
location['replace'](location)
window.location['assign'](location)
window.location['replace'](location)
window['location'].assign(location)
window['location'].replace(location)
window['location']['assign'](location)
window['location']['replace'](location)
self.location['assign'](location)
self.location['replace'](location)
self['location'].assign(location)
self['location'].replace(location)
self['location']['assign'](location)
self['location']['replace'](location)
location.href = location
location.href = location.href
location.href = window.location
location.href = self.location
location.href = window.location.href
location.href = self.location.href
location.href = location['href']
location.href = window['location']
location.href = window['location'].href
location.href = window['location']['href']
location.href = window.location['href']
location.href = self['location']
location.href = self['location'].href
location.href = self['location']['href']
location.href = self.location['href']
...

84
bu ilginç, ama şimdi kafam karıştı
Arun Prasad ES

14
Ayrıca Javascript'in özelliklerini de vurgulamaktadır :)
Jeremy Thille

52
Şahsen bu cevabı beğenmiyorum, çünkü bu sadece konumu değiştirmek için farklı uygulamaların bir kısmını gösteriyor. Bu yollar, bir işlevi yürütmek veya javascript'te bir özniteliğe erişmek için farklı yolların permütasyonlarıdır. Bir sayfayı yeniden yüklemek için farklı yollar DEĞİLDİR.
Joshua Behrens

41
Tabii daha da fazlası var:window.window.window['window'].location = window['window'].window['window']['window']['window']['window']['window']['window']['location']
Renato

84

Düğmesini kullanarak bu görevi gerçekleştirebilirsiniz window.location.reload();. Bunu yapmanın birçok yolu var ama aynı belgeyi JavaScript ile yeniden yüklemek için uygun bir yol olduğunu düşünüyorum. İşte açıklama

JavaScript window.locationnesnesi kullanılabilir

  • geçerli sayfa adresini (URL) almak için
  • tarayıcıyı başka bir sayfaya yönlendirmek için
  • aynı sayfayı yeniden yüklemek için

window: JavaScript'te tarayıcıda açık bir pencereyi temsil eder.

location: JavaScript'te geçerli URL hakkında bilgi içerir.

locationNesne bir fragmanı gibi windowbir nesne ve üzerinden çağrılan window.locationözelliği.

location nesnenin üç yöntemi vardır:

  1. assign(): yeni bir belge yüklemek için kullanılır
  2. reload(): mevcut belgeyi yeniden yüklemek için kullanılır
  3. replace(): geçerli belgeyi yenisiyle değiştirmek için kullanılır

Bu yüzden burada kullanmamız gerekiyor reload(), çünkü aynı belgeyi yeniden yüklememize yardımcı olabilir.

Öyleyse böyle kullanın window.location.reload();.

JSFiddle'da çevrimiçi demo

Tarayıcınızdan sayfayı önbellekten değil, doğrudan sunucudan almasını istemek için adresine bir trueparametre iletebilirsiniz location.reload(). Bu yöntem IE, Chrome, Firefox, Safari, Opera gibi tüm büyük tarayıcılarla uyumludur.


2
Ah ha! replace()Sorgu dizesinde küçük bir değişiklikle sayfamı yeniden yüklemem gerektiğinden aradığım çözüm olduğu ortaya çıktı.
Bernard Hymmen

W3schools'tan: "assign () ve replace () arasındaki fark, replace () öğesinin geçerli belgenin URL'sini belge geçmişinden kaldırmasıdır, yani" geri "düğmesini geri dönmek için mümkün değildir orijinal belge. "
pasaba por aqui

54

Deneyin:

window.location.reload(true);

'True' olarak ayarlanan parametre, sunucudan yeni bir kopya yükler. Dışarıda bırakmak, sayfayı önbellekten sunar.

Daha fazla bilgi MSDN'de ve Mozilla belgelerinde bulunabilir .


1
harici bir web sayfasını www.xyz.com/abc yenilemek istersem ne olur?
DoIt

@Dev: Daha sonra bahsedildiği gibi "değiştir" ile denemelisiniz
Jean Paul AKA el_vete

@Orane: Bu cevabın hem basitliğini hem de becerikliliğini seviyorum, sadece op'un sorgusunu tatmin etmek için birçok seçenek sunmak gibi, bu durumda da, her tarayıcı olarak gelecekteki referans için bu durumda bir otorite referanslı bağlantı sağladığınız için teşekkür ederiz. render için kendi JS motor var ... Bence soru çok genel ve bunun için ne yapmak istiyorsun bağlıdır, çünkü başka web referans: " phpied.com/files/location-location/location- location.html "bu sorunun yanıtını tamamen tatmin edebilir. Ancak, bu bana yardımcı oldu;)
Jean Paul AKA el_vete

1
Bu hala doğru mu? Bu bağlantıların her ikisi de yeniden yükleme için herhangi bir parametreden bahsetmez.
Rüdiger Schulz

50

Bir method="post"form gönderdikten sonra gibi POST istekleri ile alınan sayfalardaki yeniden yüklemelerle ilgili bazı bilgiler arıyordum .

POST verilerini tutan sayfayı yeniden yüklemek için şunu kullanın:

window.location.reload();

POST verilerini atarak sayfayı yeniden yüklemek için (bir GET isteği gerçekleştirin) şunu kullanın:

window.location.href = window.location.href;

Umarım bu aynı bilgileri arayan başkalarına yardımcı olabilir.


Bir POSTistekle alınan bir dokümanın yeniden yüklenmesine ilişkin bir referans içeren cevap için teşekkür ederiz .
Christopher Schultz

Yöntemleri GETve POSTyöntemleri arasında iyi bir ayrım
Hassan Baig

Bu cevap çok aşağıdaydı!
Greg Randall

1
window.location.href = window.location.hrefgeçerli URL bir a içeriyorsa sayfayı yeniden yüklemez #. İhtiyacınız yoksa karmayı kaldırabilirsiniz window.location.href = window.location.href.split('#')[0];.
Roland Starke

41

JavaScript kullanarak bir sayfayı yeniden yüklemek için şunu kullanın:

window.location.reload();

37

Bu benim için çalışıyor:

function refresh() {    
    setTimeout(function () {
        location.reload()
    }, 100);
}

http://jsfiddle.net/umerqureshi/znruyzop/


Bu benim için tercih edilir, çünkü sunucu tarafında bir döngü koşulunu önler
ILMostro_7

1
Özellikle zaman aşımı işlevinin dahil edilmesini takdir ediyorum çünkü yenileme gerçekleşmeden önce hala görmek istediğim bir mesajım var. Kudos!
Matt Cremeens

setTimeout işlevine ikinci bir argüman olarak farklı değerler ayarlayabilirsiniz, ancak çalışmaz, yeniden yükleme hemen gerçekleşir, nasıl çözülür?
O.Kuz

1
@ O.Kuz öyle düşünmüyor. diyelim ki değeri 5000ms olarak ayarlarsanız 5 saniye sonra yeniden yükleme gerçekleşir. bkz. jsfiddle.net/umerqureshi/znruyzop/446
umer

1
Kodumda bir hata bulmam gerekiyor) Çok teşekkürler!
O.Kuz

15

Eğer koyarsan

window.location.reload(true);

sayfanızın başında, bu kodun neden çalıştığını belirleyen başka bir koşul olmadan, sayfa yüklenecek ve siz tarayıcınızı kapatana kadar kendini yeniden yüklemeye devam edecektir.


Peki ya da başka bir URL açana kadar. Muhtemelen tarayıcının sürekli sayfa (yeniden) yüklerini işleme yeteneğine bağlıdır.
adamdunson

bu doğru şekilde belirttiğiniz gibi nereye yerleştirdiğinize bağlıdır. Burada sadece bir bağlantı etiketinin, sayfayı yeniden yükleme gibi bir işlemi yürütmek için sezgisel bir öğe olmadığından bahsediyoruz. Öneri: Bir onclick etkinliği yapmak için hedef olarak başka bir kullanıcı arayüzü nesnesine güveniyoruz. Sayfa yüklendikten sonra, örneğin bir css ile süslerseniz, bir div hedefleyerek bunu jQuery'de yapabilirsiniz. Bu, onunla ne yapmak istediğinize bağlıdır. Bu bağlamda, giriş türü düğmesi yerine bir düğme. Arka uç uygulamasına bir argüman iletmeyi planlamıyorsak daha uygun görünüyor.
Jean Paul AKA el_vete

IE: <button onclick = "javascript: window.location.reload (true);"
Jean Paul AKA el_vete

11
location.href = location.href;

5
Modern tarayıcılar bunu görmezden gelir, çünkü href değişmez, bu yüzden yeniden yüklemeye gerek yoktur. Bunu yalnızca yeniden yüklemesi olmayan eski tarayıcılar için yerine çalışma olarak kullanmalısınız: (location.reload? Location.reload (): location.href = location.href)
Radek Pech

@RadekPech Hangi eski tarayıcılarda yoktur location.reload()?
Matthias

8

Kolay ve basit hale getirmek için kullanın location.reload(). location.reload(true)Sunucudan bir şey almak istiyorsanız da kullanabilirsiniz .


8

Bir düğme kullanarak veya yalnızca "a" (çapa) etiketinin içine koyun:

<input type="button" value="RELOAD" onclick="location.reload();" />

Diğer ihtiyaçlar için bunları deneyin:

Location Objects has three methods --

assign() Used to load a new document
reload() Used to reloads the current document.
replace() Used to replace the current document with a new one

1
ilginç ... peki ya <button> </button>? aynı şekilde çalışıyor, değil mi?
Jean Paul AKA el_vete

1
Bir cazibe gibi çalıştı! Aşağıdaki cevabımı gör :) Teşekkürler
Jean Paul AKA el_vete


4

20 saniye sonra sayfayı otomatik olarak yeniden yükle.

<script>
    window.onload = function() {
        setTimeout(function () {
            location.reload()
        }, 20000);
     };
</script>

4

Teşekkür ederim, bu yazı sadece önerilen cevapla sayfayı yeniden yüklemek için değil, aynı zamanda bir düğmeye bir jQuery UI simgesi yerleştirme fikri vermek için çok yardımcı oldu:

<button style="display:block; vertical-align:middle; height:2.82em;"
        title="Cargar nuevamente el código fuente sin darle un [Enter] a la dirección en la barra de direcciones"
        class="ui-state-active ui-corner-all ui-priority-primary" 
        onclick="javascript:window.location.reload(true);">
    <span style="display:inline-block;" class="ui-icon ui-icon-refresh"></span>
    &nbsp;[<b>CARGAR NUEVAMENTE</b>]&nbsp;
</button>

Bir projeye dahil edildiğinde bunun nasıl göründüğünü göstermek için düzenlendi

2016/07/02

Bu özür dilerim, jQuery UI, Themeroller, Icons framework, jQuery tabs gibi yöntemler kullanmayı ima eden kişisel bir proje, ancak İspanyolca;)


@Peter Mortensen: Düzenleme için teşekkürler, bu proje prototipi kolej için yapıldı, bu yüzden ekli ekranlarda İspanyolca olması gerekiyordu .. Bunun için özür dilerim ... Tabii ki, bazı jQuery UI ile ilgili çekirdek olması gerekiyordu gibi karıştırmak için bağımlılıklar: --- örneğin ThemeRoller widget jqueryui.com/themeroller ve eklentiler gibi: plugins.jquery.com/qTip2 , datatables.net .. jQuery kütüphanesinin kendisi, vb .. ama eylem yukarıdaki yanıtlardan bazılarına dayanılarak yapılmıştır: onclick = "javascript: window.location.reload (true);">!
Jean Paul AKA el_vete

3

Bu çalışmalı:

window.location.href = window.location.href.split( '#' )[0];

veya

var x = window.location.href;
x = x.split( '#' );
window.location.href = x[0];

Bunu aşağıdaki nedenlerden dolayı tercih ederim:

  • Sayfanın bulunduğu içeriği yeniden yüklemeyen tarayıcılara sayfanın yeniden yüklenmesini sağlayarak # işaretinden sonraki bölümü kaldırır.
  • Yakın zamanda bir form gönderirseniz son içeriği yeniden yayınlamak isteyip istemediğiniz sorulmaz.
  • En son tarayıcılarda bile çalışmalıdır. Lasted Firefox ve Chrome'da test edildi.

Alternatif olarak, bu görev için en son resmi yöntemi kullanabilirsiniz

window.location.reload()

3

Sayfayı yenilemek için bu düğmeyi kullanın

DEMO

<input type="button" value="Reload Page" onClick="document.location.reload(true)">

2

Reload () yöntemi geçerli belgeyi yeniden yüklemek için kullanılır.

Reload () yöntemi, tarayıcınızdaki yeniden yükle düğmesiyle aynı işlevi görür.

Varsayılan olarak, reload () yöntemi sayfayı önbellekten yeniden yükler, ancak forceGet parametresini true: location.reload (true) olarak ayarlayarak sayfayı sunucudan yeniden yüklemeye zorlayabilirsiniz.

        location.reload();

-3

Sadece kullanabilirsiniz

window.location=document.URL

Burada document.URL geçerli sayfa URL'sini alır ve window.location yeniden yükler.


2
Modern tarayıcılar bunu görmezden gelir, çünkü href değişmez, bu yüzden yeniden yüklemeye gerek yoktur. Bunu yalnızca yeniden yüklemesi olmayan eski tarayıcılar için yük devretme olarak kullanmalısınız: (location.reload? Location.reload (): location = document.URL)
Radek Pech
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.