20 votes

Recharger automatiquement la page dans Chrome sans plugin

En utilisant le plugin TabMixPlus pour Firefox ou Chrome, je peux faire un clic droit sur une page et choisir "reload every..." et je pourrais choisir un intervalle.

Je préfère ne pas installer de plugin à moins d'y être obligé, et je suis conscient que vous pouvez taper spécial dans la barre d'adresse de Chrome.

Cela me fait penser que quelque chose comme ceci, tapé directement dans l'adresse, pourrait fonctionner :

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

Je n'y suis pas encore parvenu, mais je ne veux pas exclure cette possibilité.

Est-ce possible ?

28voto

jon Points 914

Après 6 ans, j'ai une solution à ce problème !

Cette réponse s'inspire des autres réponses données ici.

La réponse d'Edub n'a pas fonctionné pour moi, elle a rechargé la page encore et encore, et n'a pas observé setInterval Le paramètre de durée de l'UE. Je ne comprends pas pourquoi la réponse d'Edub ne fonctionne pas comme prévu.

Cela fonctionne pour moi dans 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)

Version formatée :

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
)

Cela fonctionne en remplaçant le corps du document actuel par une iframe pointant vers l'emplacement actuel de la fenêtre.

Ensuite, un appel à setInterval est fait, ce qui fait que la page se recharge sur une minuterie.

Cela fonctionne bien comme un signet. La fonction complémentaire de setInterval peut également être appelée par le signet : javascript:clearTimer(reloadTimer)

Notes :

  • Certains sites détectent qu'on y accède via une iframe et tentent d'en empêcher l'accès (les sites de Stack par exemple !).

  • Les navigateurs suppriment le préfixe javascript: lors du collage dans la barre d'adresse, il doit donc être saisi manuellement. Cependant, javascript: n'est pas supprimée si elle est saisie via un signet.

12voto

Justin Buser Points 1217

Vous pouvez le faire par le biais des Outils du développeur de Chrome en utilisant la combinaison de touches ctrl+shift+j . Chargez la page que vous voulez, disons par exemple : http://www.w3schools.com/jsref/dom_obj_frame.asp puis appuyez sur ctrl+shift+j pour ouvrir les outils de développement. Cliquez avec le bouton droit de la souris sur la balise body et sélectionnez edit as html ; remplacez le contenu interne (en laissant la balise et les balises de fermeture intactes) par ce qui suit :

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

pour arrêter l'édition en tant que html, vous pouvez soit appuyer sur esc ou cliquez sur l'une des balises en dehors de celle que vous êtes en train de modifier. La page devrait commencer à se recharger toutes les 10 secondes, vous pouvez fermer les outils de développement si vous le souhaitez et elle continuera à se rafraîchir, aucun plugin n'est nécessaire :)

4voto

Edub Points 141

En poussant la solution de Justin Buser un peu plus loin, j'en arrive à :

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'idée d'intégrer le site dans une iframe pour pouvoir le recharger fonctionne bien (je suppose). J'ai juste écrit un code pour récupérer le corps du texte et remplacer l'innerhtml par une iframe vers l'url courante.

De cette façon, il est possible de mettre en signet un code JavaScript et de le déclencher sur n'importe quel site pour le recharger. J'espère que cela vous aidera.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X