Recarga automáticamente la página en Chrome sin complemento


12

Usando el complemento TabMixPlus para Firefox o Chrome, puedo hacer clic derecho en una página y elegir "recargar cada ..." y podría elegir un intervalo.

Prefiero no instalar un complemento a menos que realmente tenga que hacerlo, y soy consciente de que puede escribir cosas especiales en la barra de direcciones de Chrome.

Esto me hace pensar que algo como esto escrito directamente en la dirección podría funcionar:

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

Todavía no lo he logrado, pero todavía no quiero descartarlo como una posibilidad.

es posible?


¿Por qué estás en contra de un complemento? Si está preocupado, simplemente escriba su propio complemento que haga exactamente lo que desea.
Ramhound

No estoy en contra de los complementos, lo siento si se lee así. Solo me gustaría aprender un poco más sobre las capacidades de la barra de direcciones de Chrome :)
jon

¿Por qué no has intentado escribir esto en la barra de direcciones?
Toby Allen

Tengo, veri haven't managed it yet
jon

El problema es que una vez que llamas location.reload()y la página se recarga, en lo que respecta a Chrome es básicamente como cargar una nueva página y el contexto es completamente nuevo (las cosas que escribiste anteriormente se pierden). Por lo tanto, debe conservar su código de alguna manera y hacer que la página sea la misma, razón por la cual la solución iframe de la respuesta.
ShreevatsaR

Respuestas:


13

¡Después de 6 años tengo una solución para esto!

La respuesta está inspirada en las otras respuestas aquí.

La respuesta de Edub no funcionó para mí, volvió a cargar la página una y otra vez y no observó setIntervalel parámetro de duración. No entiendo por qué la respuesta de Edub no funciona como se esperaba.

Esto funciona para mí en 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)

Versión formateada:

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
)

Esto funciona reemplazando el cuerpo del documento actual con un iframe que apunta a la ubicación actual de la ventana.

Luego se realiza una llamada a setInterval, que hace que la página se vuelva a cargar en un temporizador.

Esto funciona bien como marcador. La función complementaria de setInterval también se puede llamar por marcador:javascript:clearTimer(reloadTimer)

Notas:

  • Algunos sitios detectan que se accede a ellos a través de iframe e intentan impedir el acceso (¡apila los sitios, por ejemplo!

  • Los navegadores eliminan el prefijo javascript:al pegar en la barra de direcciones, por lo que debe ingresarse manualmente. Sin embargo, javascript:no se elimina si se ingresa mediante un marcador.


11

Puede hacerlo a través de las Herramientas para desarrolladores de Chrome utilizando la combinación de teclas ctrl+shift+j. Cargue la página que desee, por ejemplo: http://www.w3schools.com/jsref/dom_obj_frame.asp, luego presione ctrl+shift+jpara abrir las herramientas del desarrollador. Haga clic derecho en la etiqueta del cuerpo y seleccione editar como html reemplace el contenido interno (dejando la etiqueta y las etiquetas de cierre intactas) con lo siguiente:

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

para detener la edición como html, puede presionar esco hacer clic en una de las etiquetas fuera de la que está editando. La página debería comenzar a recargarse cada 10 segundos, puede cerrar las herramientas de desarrollador si lo desea y continuará actualizándose, no se necesita ningún complemento :)


Gracias Justin, esto funciona, así que he votado positivamente, pero no es la respuesta que estaba buscando, así que dejaré la pregunta abierta con esperanza :) Además, ¿F12 no?
jon

3

Tomando la solución de Justin Buser un paso más, llévame 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>"

La idea de insertar el sitio en un iframe para poder volver a cargarlo funciona bien (supongo). Acabo de escribir un código para obtener el elemento del cuerpo y reemplazar el innerhtml con un Iframe a la url actual.

De esta forma, es posible marcar un código JavaScript y activarlo en cualquier sitio para volver a cargarlo. Espero eso ayude.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.