Ricarica automaticamente la pagina in Chrome senza plug-in


12

Utilizzando il plug-in TabMixPlus per Firefox o Chrome, posso fare clic con il pulsante destro del mouse su una pagina e scegliere "ricarica ogni ..." e posso scegliere un intervallo.

Preferirei non installare un plug-in a meno che non sia necessario e sono consapevole che è possibile digitare elementi speciali nella barra degli indirizzi di Chrome.

Questo mi fa pensare che qualcosa del genere digitato direttamente nell'indirizzo potrebbe funzionare:

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

Non l'ho ancora gestito, ma non voglio ancora escluderlo come una possibilità.

È possibile?


Perché sei contro un plugin? Se sei così preoccupato, scrivi il tuo plugin che fa esattamente quello che vuoi.
Ramhound,

Non sono contrario ai plug-in, mi dispiace se si legge così. Vorrei solo saperne di più sulle funzionalità della barra degli indirizzi di Chrome :)
jon

Perché non hai provato a digitare questo nella barra degli indirizzi?
Toby Allen,

Ho, vedii haven't managed it yet
jon

Il problema è che una volta che chiami location.reload()e la pagina viene ricaricata, per quanto riguarda Chrome è fondamentalmente come caricare una nuova pagina e il contesto è tutto nuovo (le cose che hai digitato in precedenza vanno perse). Quindi è necessario mantenere il codice in qualche modo e mantenere la pagina uguale, motivo per cui la soluzione iframe della risposta.
ShreevatsaR,

Risposte:


13

Dopo 6 anni ho una soluzione per questo!

La risposta è ispirata dalle altre risposte qui.

La risposta di Edub non ha funzionato per me, ha ricaricato la pagina più e più volte e non ha osservato setIntervalil parametro di durata. Non capisco perché la risposta di Edub non funzioni come previsto.

Questo funziona per me in Chrome 67:

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)

Versione formattata:

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
)

Funziona sostituendo il corpo del documento corrente con un iframe che punta alla posizione corrente della finestra.

Quindi viene effettuata una chiamata a setInterval, che consente di ricaricare la pagina su un timer.

Funziona bene come segnalibro. La funzione complementare di setInterval può essere chiamata anche dai segnalibri:javascript:clearTimer(reloadTimer)

Appunti:

  • Alcuni siti rilevano che stanno accedendo tramite iframe e tentano di impedire l'accesso (ad esempio siti Stack!)

  • I browser rimuovono il prefisso javascript:quando si incolla nella barra degli indirizzi, quindi deve essere inserito manualmente. Tuttavia javascript:non viene rimosso se inserito tramite segnalibro.


11

Puoi farlo tramite gli Strumenti per sviluppatori di Chrome utilizzando la combinazione di tasti ctrl+shift+j. Carica la pagina che desideri, ad esempio: http://www.w3schools.com/jsref/dom_obj_frame.asp quindi premi ctrl+shift+jper aprire gli strumenti di sviluppo. Fare clic con il tasto destro del mouse sul tag body e selezionare Modifica come HTML sostituisce il contenuto interno (lasciando intatto il tag e tag di chiusura) con quanto segue:

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

per interrompere la modifica come HTML puoi escpremere o fare clic su uno dei tag al di fuori di quello che stai modificando. La pagina dovrebbe iniziare a ricaricarsi ogni 10 secondi, se lo desideri puoi chiudere gli strumenti per gli sviluppatori e continuerà ad aggiornarsi, non è necessario alcun plug-in :)


Grazie Justin, funziona così ho votato, ma non è la risposta che stavo cercando, quindi la domanda rimarrà aperta nella speranza :) Inoltre, F12 non?
Jon

3

Prendere la soluzione di Justin Buser un ulteriore passo mi porta a:

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

L'idea di incorporare il sito in un iframe per poterlo ricaricare funziona benissimo (immagino). Ho appena scritto del codice per ottenere l'elemento body e sostituire il codice interno con un Iframe con l'URL corrente.

In questo modo è possibile aggiungere un segnalibro a un codice JavaScript e attivarlo in qualsiasi sito per ricaricarlo. Spero che sia d'aiuto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.