¿Usa JavaScript y Greasemonkey para recargar solo una pestaña en Firefox?


8

Soy nuevo en Greasemonkey y javascript, pero he encontrado el siguiente script para volver a cargar una página cada 5 minutos.

// ==UserScript==
// @name        Auto Reload Protopage
// @namespace   http://blog.monstuff.com/archives/cat_greasemonkey.html
// @description Reload pages every 5 minutes
// @include     http://ww.bbc.co.uk
    // @grant               none
// ==/UserScript==

// based on code by Julien Couvreur
// and included here with his gracious permission

var numMinutes = 5;
window.setTimeout("document.location.reload();", numMinutes*60*1000);

Esto funciona pero recarga todas las pestañas abiertas cada 5 minutos y no solo la especificada en la declaración @include.

¿Hay alguna forma de hacer esto?



Lo siento, eso fue solo un error tipográfico
Neil Spencer

Respuestas:


8

Ese código tiene un bloque de metadatos corrupto , los espacios son críticos para ese bloque y los espacios adicionales al comienzo de una línea pueden romperlo, haciendo que el script se active para todas las páginas (el comportamiento predeterminado).

Actualización: la aparición de un bloque dañado puede ser solo un error de visualización aquí en SuperUser. Investigaré en un momento.
Actualizador: El bloque corrupto es real, el código del OP está sangrado por una combinación de pestañas y espacios, lo que engañó al editor de publicaciones sin formato de SU, pero no la pantalla final.

Además, la @includedirectiva especifica una página web que no existe. ww., versus www.. Esa línea debería ser:

// @include     http://www.bbc.co.uk/

O posiblemente:

// @include     http://www.bbc.co.uk/*

si desea más que solo la página de inicio efectuada.

Poniendo todo junto y usándolo setTimeoutde la manera recomendada (Evite el uso de "auto eval ()"):

// ==UserScript==
// @name        Auto Reload Protopage
// @namespace   http://blog.monstuff.com/archives/cat_greasemonkey.html
// @description Reload pages every 5 minutes
// @include     http://www.bbc.co.uk/
// @grant       none
// ==/UserScript==

// based on code by Julien Couvreur
// and included here with his gracious permission

var numMinutes = 5;
setTimeout (location.reload, numMinutes*60*1000);

1
Brillante, muchas gracias por esto. La secuencia de comandos ahora solo funciona en la página que quiero en lugar de todas las páginas.
Neil Spencer

2

No estoy seguro de cómo hacer esto en Javascript, pero Firefox tiene un complemento llamado ReloadEvery . Instálelo, reinicie FF y luego haga clic derecho en la página y elija Volver a cargar cada vez.


1
Sí, pero cada vez que abro Firefox y voy al sitio web necesito activar ReloadEvery. Lo que me gustaría es que la recarga se active automáticamente simplemente yendo a la página. El javascript anterior hace esto pero también recarga todas las demás pestañas que están abiertas.
Neil Spencer
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.