Sayfayı Chrome'da eklenti olmadan otomatik olarak yeniden yükle


8

Firefox veya Chrome için TabMixPlus eklentisini kullanarak bir sayfayı sağ tıklayıp "her şeyi yeniden yükle ..." yi seçebilirim ve bir aralık seçebilirim.

Gerçekten yapmak zorunda olmadığım sürece bir eklenti yüklememeyi tercih ederim ve yazabileceğinizi biliyorum özel Chrome'un adres çubuğundaki şeyler.

Bu, doğrudan adrese bu şekilde yazılmış bir şeyin işe yarayabileceğini düşündürüyor:

javascript:setInterval(window.location.reload(), 2000); //2 secs`

Henüz başaramadım, ancak yine de bir olasılık olarak ekarte etmek istemiyorum.

Mümkün mü?


Neden bir eklentiye karşısın? Eğer bu kadar endişeleniyorsanız, tam olarak istediğiniz şeyi yapan kendi eklentinizi yazın.
Ramhound

Eklentilere karşı değilim, eğer öyle okursa özür dilerim. Chrome'un adres çubuğunun yetenekleri hakkında biraz daha fazla bilgi edinmek istiyorum :)
jon

Neden bunu adres çubuğuna yazmayı denemedin?
Toby Allen

Görüyorum i haven't managed it yet
jon

Sorun şu ki aradığın zaman location.reload() ve Chrome söz konusu olduğunda, sayfa yeniden yüklenir, temelde yeni bir sayfa yüklemek gibidir ve bağlam tamamen yenidir (daha önce yazdığınız şeyler kaybolur). Bu nedenle, kodunuzu bir şekilde sürdürmeniz ve sayfanın aynı olması gerekir, bu nedenle cevabın iframe çözümü.
ShreevatsaR

Yanıtlar:


10

Tuş kombinasyonunu kullanarak Chrome Geliştirici Araçları ile yapabilirsiniz Ctrl + shift + j . İstediğiniz sayfayı yükleyin, örneğin: http://www.w3schools.com/jsref/dom_obj_frame.asp sonra vur Ctrl + shift + j Geliştirici araçlarını açmak için Gövde etiketine sağ tıklayın ve html olarak düzenle'yi seçin, iç içerikleri değiştirin (etiketi bırakıp etiketleri kapatarak).

<iframe id="testFrame" src="http://www.w3schools.com/jsref/dom_obj_frame.asp" style="position: absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%;" onload="setInterval(document.getElementById('testFrame').contentWindow.location.reload(), 10000);"></iframe>

html olarak düzenlemeyi durdurmak için tuşuna basabilirsiniz. ESC veya düzenlediğiniz dışındaki etiketlerden birini tıklayın. Sayfa 10 saniyede bir yeniden yüklenmeye başlamalıdır, isterseniz geliştiricilerin araçlarını kapatabilirsiniz ve yenilemeye devam edecek, eklentiye gerek yok :)


Teşekkürler Justin, bu işe yarıyor, bu yüzden daha fazla oy kullandım, fakat aradığım cevap bu değil, soruyu umutla açık bırakacak :) Ayrıca, F12?
jon

3

Çözümü Justin Buser'dan bir adım daha ileri götürmek beni şöyle yönlendirdi:

document.getElementsByTagName("body")[0].innerHTML = "<iframe id=\"testFrame\" src=\""+window.location.toString()+"\" style=\"position: absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%;\" onload=\"setInterval(document.getElementById(\'testFrame\').contentWindow.location.reload(), 10000);\"><\/iframe>"

Siteyi yeniden yükleyebilmek için iframe içine yerleştirme fikri iyi çalışıyor (sanırım). Sadece beden seçimlerini elde etmek ve innerhtml'yi bir Iframe ile değiştirmek için geçerli url kodunu yazdım.

Bu şekilde, bazı JavaScript kodlarını işaretlemek ve yeniden yüklemek için herhangi bir siteye ateşlemek mümkündür. Umarım yardımcı olur.


3

6 yıl sonra bunun için bir çözümüm var!

Cevap, buradaki diğer cevaplardan esinlenmiştir.

Edub'ın cevabı benim için işe yaramadı, sayfayı tekrar tekrar yükledi ve gözlemlemedi. setInterval süre parametresi. Edub'un cevabının neden beklendiği gibi çalışmadığını anlamıyorum.

Bu benim için Chrome 67’de işe yarıyor:

javascript:document.getElementsByTagName("body")[0].innerHTML = "<iframe id=\"testFrame\" src=\""+window.location.toString()+"\" style=\"position: absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%;\"><\/iframe>";reloadTimer = setInterval(function(){ document.getElementById("testFrame").src=document.getElementById("testFrame").src },10000)

Biçimlendirilmiş versiyon:

document.getElementsByTagName("body")[0].innerHTML = 
"<iframe id=\"testFrame\" 
        src=\"" + window.location.toString() + "\" 
      style=\"position: absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%;\">
<\/iframe>";
reloadTimer = setInterval(
    function(){ 
        document.getElementById("testFrame").src=document.getElementById("testFrame").src
    },
    10000
)

Bu, geçerli belge gövdesini, pencerenin geçerli konumuna işaret eden bir iframe ile değiştirerek çalışır.

Ardından, sayfanın bir zamanlayıcıda yeniden yüklenmesini sağlayan setInterval öğesine bir çağrı yapılır.

Bu bir yer imi olarak iyi çalışır. setInterval'in tamamlayıcı işlevi de yer imi ile çağrılabilir: javascript:clearTimer(reloadTimer)

Notlar:

  • Bazı siteler iframe üzerinden erişildiğini tespit ediyor ve erişimi engellemeye çalışıyor (örneğin, Stack siteleri!)

  • Tarayıcılar öneki soyun javascript: adres çubuğuna yapıştırırken manuel olarak girilmesi gerekir. ancak javascript: yer imi ile girilirse elenmez.

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.