2009-09-11 35 views
27

Estoy tratando de ejecutar un script de Greasemonkey en una página. Pero no es asíCómo determinar por qué un script de Greasemonkey no se está ejecutando

¿Cómo se depuran los scripts?

¿Cuáles son los pasos de bebé más pequeños posibles para iniciar un nuevo script de Greasemonkey?

+1

BTW he resuelto mi problema específico. Resultó que las "páginas incluidas" en el diálogo "administrar scripts de usuario" incluían "lavpriskoekken.dk/*" y no "* lavpriskoekken.dk/*" –

+4

Lo mismo me ocurre a mí. Hello World se ejecutará correctamente, luego agregaré una línea y dejará de funcionar. Si tomo eso como volver, nunca funciona de nuevo. ¿Se bloquea Greasemonkey o algo así y requiere un reinicio del intérprete? ¿Cómo haces eso? –

+0

No necesita "reiniciar" Greasemonkey. Tratará de ejecutar su script cada vez que una página que coincida con sus páginas incluidas se cargue en el navegador. Entonces, la forma de "reiniciar" es presionar Actualizar en su navegador. –

Respuesta

6

puede escribir registros en todas partes de las secuencias de comandos para obtener mejores rastros de lo que si está haciendo en ellos:

GM_log("Hello, World!"); 

http://wiki.greasespot.net/GM_log

Más información: http://wiki.greasespot.net/Greasemonkey_Manual:Other_Useful_Tools#JavaScript_Console

Otro consejo: Tome una mira todo el wiki de greasemonkey. Tienen muchas cosas buenas allí: http://wiki.greasespot.net/Main_Page

+9

Gracias, pero en el momento en que lo necesitaba, mi script ni siquiera se ejecutaba, ni siquiera podía ejecutar sentencias como ' alerta ("hola"); '. Entonces, lo que espero es construir una lista de verificación con pasos, puede verificar si su script ni siquiera se está ejecutando. –

+0

... ¡Consejo útil, sin embargo! –

+2

A partir de Greasemonkey 3.2 (Firefox 38, OS X) 'GM_log' no parece funcionar. –

5

En Firefox, abra Herramientas> Error Console y mírelas mientras carga la página. Si se siente abrumado por las Advertencias de la página, puede filtrar los Errores, que a menudo resaltan el problema de su secuencia de comandos.

+1

Se supone que es así en FF.Sin embargo, hoy en día, ciertos errores de UserScript (como el script no se puede compilar) no aparecen en la consola web ('Ctrl + Shift + K') ni en la consola del navegador (' Ctrl + Shift + J'). Parece que tenemos que cambiar a Chrome para depurar las secuencias de comandos GM. – Tino

5

Mi script de greasemonkey estaba funcionando; Agregué una línea; dejó de funcionar; Eliminé la línea; todavía no funcionó.

Decidí que greasemonkey había instalado una secuencia de comandos rota updater.php cuando volví a cargar la secuencia de comandos con la nueva línea agregada. Recargar el script antiguo mantuvo la versión rota del script updater.php. Eventualmente encontré un mensaje de error refiriéndome al script updater.php en mi consola web de Firefox. Reemplacé la secuencia de comandos updater.php con un archivo que contenía un comentario después de cargar la nueva versión de la secuencia de comandos, y mi secuencia de comandos comenzó a ejecutarse.

en Mac, mi updater.php fue en: /Users/csimmons/Library/Application Support/Firefox/Profiles/81ri7k71.default/gm_scripts/Extended_LoU_Tweak

Usted puede ser capaz de encontrar un archivo similar updater.php en su perfil por defecto de Firefox gm_scripts/ directorio.

30

Cuando comencé con scripts de usuario, mi primer error fue no usar comodines.

// Broken: 
// @include  https://www.example.com/ 

// Working: 
// @include  https://www.example.com/* 

Esa es la forma más sencilla para que el script ni siquiera se aplique y, por lo tanto, no se ejecute en absoluto. Además, asegúrese de verificar si hay errores de sintaxis; un punto y coma mal ubicado puede evitar que el script se analice y, por lo tanto, se ignora.

+3

Sí, ¡esto resolvió mi problema! – Germstorm

+0

Esto funcionó para mí, pero eso es simplemente impreciso. Estoy creando un script para FB y tuve '@include https: // www.facebook.com' y no se cargó, aunque la dirección exacta es' https: // facebook.com'. Entonces el "patrón" coincide incluso cuando no hay una barra diagonal, pero no coincide cuando la cadena es 100% igual. Extraño. – MarioDS

+4

Para ser justos, www.facebook.com! = Facebook.com. –

2

Además, la sintaxis de @include es tener solo un patrón coincidente. Si quiere otro, agregue otra línea @include.

4

Para mí hubo un error de sintaxis en el script y Greasemonkey no dio un mensaje de error. Copiar y pegar el script en la Consola JS reveló el secreto.

1

Tuve este problema también; esta era la solución para mí:

  • Comprobar la (y modificar el complicado) parte del código que estaba trabajando cuando esto ocurra

  • desinstalar y reinstalar Greasemonkey

  • entonces recibí un informe de error real

EDITAR: Hoy el problema viene con más frecuencia de lo normal (ne w release?) Parece que las herramientas web de Firefox son que combaten con motor de grasa o JS para mensajes de error.

Así que cuando estás buscando algo (ctrl + alt + k) el mensaje de error aparece en otro lugar (intenta abrir la otra consola) es como un juego divertido.

4

Asegúrese de que Greasemonkey está habilitado en el primer lugar:

0

Si la URL de la página se establece con Javascript en lugar de mediante la navegación (como Instagram dando sus ventanas emergentes una URL enlace permanente), Greasemonkey mostrará la secuencia de comandos en ejecución, pero en realidad no se iniciará. Intenta volver a cargar la URL y ver si realmente va a la misma página. De lo contrario, deberá hacer coincidir la URL de la página de inicio en lugar de la URL emergente.

Cuestiones relacionadas