¿Cómo puedo usar jQuery en Greasemonkey?

Intenté poner esta línea pero no funciona:

// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js 

jQuery no funciona en Greasemonkey en absoluto. ¿Hay alguna otra forma de usar jQuery en Greasemonkey?

Para todas las personas que tienen el mismo problema, debe cargar el archivo en greasespot y luego instalarlo desde allí.

¡La opción Crear nuevo script no funcionaría!

Quizás no tengas una versión reciente de Greasemonkey. Fue la versión 0.8 que agregó @require .

 // @require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js 

Si no tiene 0.8, entonces use la técnica que describe Joan Piedra para agregar manualmente un elemento de script a la página .

Entre la versión 0.8 y 0.9, @require solo se procesa cuando el script se instala por primera vez. Si cambia la lista de scripts necesarios, debe desinstalar el script y volver a instalarlo; Greasemonkey descarga el script requerido una vez en la instalación y utiliza una copia en caché a partir de entonces.

A partir de 0.9, el comportamiento de Greasemonkey ha cambiado (para abordar un problema tangencialmente relacionado ) de modo que ahora carga los scripts necesarios después de cada edición; la reinstalación de la secuencia de comandos ya no es necesaria.

Si desea utilizar jQuery en un sitio donde ya está incluido, este es el camino a seguir (inspirado en BrunoLM):

 var $ = unsafeWindow.jQuery; 

Sé que esta no era la intención original de la pregunta, pero se está convirtiendo cada vez más en un caso común y no excluiste explícitamente este caso. 😉

No hay absolutamente nada de malo en incluir la totalidad de jQuery en su script de Greasemonkey. Simplemente tome la fuente y colóquela en la parte superior de su script de usuario. No es necesario crear una etiqueta de script, ¡ya que está ejecutando JavaScript!

El usuario solo descarga el script de todos modos, por lo que el tamaño del script no es una gran preocupación. Además, si alguna vez quiere que su script de Greasemonkey funcione en entornos no GM (como las secuencias de comandos de usuario de GM, o Greasekit en Safari), le ayudará a no utilizar construcciones únicas de GM, como @require.

La solución de Rob es la correcta: utilice @require con la biblioteca jQuery y asegúrese de reinstalar su script para que la directiva se procese.

Una cosa que creo que vale la pena agregar es que puedes usar jQuery normalmente una vez que lo hayas incluido en tu script, a excepción de los métodos AJAX . Por defecto, jQuery busca XMLHttpRequest, que no existe en el contexto de Greasemonkey. Escribí sobre una solución alternativa en la que creas un contenedor para GM_xmlhttpRequest (la versión Greasemonkey de XHR) y utilizas jQuery’s ajaxSetup() para especificar tu versión envuelta como la predeterminada. Una vez que haga esto, puede usar $.get y $.post como de costumbre.

También puede tener problemas con $.getJSON jQuery porque carga JSONP usando tags . Esto genera errores porque jQuery define la función de callback en el ámbito de la ventana de Greasemonkey, y los scripts cargados buscan la callback en el scope de la ventana principal. Su mejor $.get es usar $.get en $.get lugar y analizar el resultado con JSON.parse() .

Actualización : como dice el comentario a continuación, esta respuesta es obsoleta.

Como todos han dicho, @require solo se ejecuta cuando el script se ha instalado. Sin embargo, debe tener en cuenta que actualmente jQuery 1.4. * No funciona con greasemonkey. Puede ver aquí para obtener más información: http://forum.jquery.com/topic/importing-jquery-1-4-1-into-greasemonkey-scripts-generates-an-error

Deberá usar jQuery 1.3.2 hasta que las cosas cambien.

Si usa Chrome, debe optar por una alternativa ya que Chromium no es compatible con @require .

Fuente: The Chromium Project – Guiones de usuario

Más detalles y alternativas sobre ¿Cómo puedo usar jQuery en las secuencias de comandos de Greasemonkey en Google Chrome?

Puede crear una nueva secuencia de comandos usando New User Script en Greasemonkey, pero debe editar el archivo config.xml dentro de la carpeta gm_scripts.

Su archivo config.xml debe tener una syntax similar a esta:

  

Observe la etiqueta .

En su secuencia de comandos, puede usar la syntax jQuery directa. Asegúrese de tener la etiqueta de solicitud en el encabezado de Greasemonkey. Aquí hay un ejemplo de Hello World:

 // ==UserScript== // @name Test jQuery // @namespace http://www.example.com/jQueryPlay/ // @description Just a test // @include http://* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js // ==/UserScript== $(document).ready(function() { alert("Hello world!"); }); 

Recuerde que después de modificar config.xml , debe reiniciar su navegador para que Greasemonkey vuelva a cargar la configuración.

También tenga en cuenta que debe copiar el archivo jquery.js en la carpeta del directorio de scripts para que esto funcione. Probé esto, y solo funciona si realmente copias el archivo allí manualmente.

Feliz jQuerying!

el meta de @require no funciona cuando desea desvincular eventos en una página web usando jQuery, debe usar una biblioteca jQuery incluida en la página web y luego obtenerla en Greasemonkey con var $ = unsafeWindow.jQuery; ¿Cómo desvincular manejadores de eventos jquery en greasemonkey?

Es posible que el Component unavailable esté Component unavailable si importa el script jQuery directamente.

Tal vez es de lo que @Conley estaba hablando …

Puedes usar

 @require http://userscripts.org/scripts/source/85365.user.js 

que es una versión modificada para trabajar en Greasemonkey, y luego obtener el objeto jQuery

 var $ = unsafeWindow.jQuery; $("div").css("display", "none"); 

@require NO se procesa solo cuando se instala el script por primera vez. ¡En mis observaciones, se procesa en el primer tiempo de ejecución! Entonces puede instalar un script a través del comando de Greasemonkey para crear un nuevo script. Lo único que debe preocuparse es que no se @require la recarga de la página, antes de agregar la pieza @require . (y guarda el nuevo script …)