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 manera 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!
jquery
greasemonkey
Keira Nighly
fuente
fuente
$(document).ready(function() {...});
su código@requires
es agregar un hash o una cadena de consulta al final de la@require
instrucción, y cambiarla cuando sea necesario actualizarla. Similar a la forma en que "cazarías" un favicon.// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js?v=changeme
Respuestas:
Quizás no tienes una versión suficientemente reciente de Greasemonkey. Fue la versión 0.8 la que agregó
@require
.Si no tiene 0.8, use la técnica que Joan Piedra describe para agregar manualmente un
script
elemento a la página .Entre versión 0.8 y 0.9,
@require
está solamente procesado cuando la secuencia de comandos se instala primero. Si cambia la lista de scripts necesarios, debe desinstalar su script y volver a instalarlo; Greasemonkey descarga el script requerido una vez en la instalación y luego utiliza una copia en caché.A partir de 0.9, el comportamiento de Greasemonkey ha cambiado (para abordar un problema relacionado tangencialmente ) de modo que ahora carga los scripts necesarios después de cada edición; reinstalar el script ya no es necesario.
fuente
@require
directivas, deberá desinstalarlo y reinstalarlo para que surta efecto.Si desea usar jQuery en un sitio donde ya está incluido, este es el camino a seguir (inspirado en BrunoLM):
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 excluyó explícitamente este caso. ;)
fuente
if(typeof $ == 'undefined'){ var $ = unsafeWindow.jQuery; }
en Chrome, un sitio Jquery ya estará disponible.alert($('.submit_entry').length);
es tanto un error como el envío de la alerta apropiada, al mismo tiempo.No hay absolutamente nada de malo en incluir la totalidad de jQuery dentro de su script Greasemonkey. Simplemente tome la fuente y colóquela en la parte superior de su script de usuario. ¡No es necesario hacer una etiqueta de script, ya que ya está ejecutando JavaScript!
El usuario solo descarga el script una vez de todos modos, por lo que el tamaño del script no es una gran preocupación. Además, si alguna vez desea que su script Greasemonkey funcione en entornos no GM (como los scripts de usuario GM-esque de Opera, o Greasekit en Safari), ayudará a no usar construcciones únicas de GM como @require.
fuente
La solución de Rob es la correcta: úsela
@require
con la biblioteca jQuery y asegúrese de reinstalar su script para que se procese la directiva.Una cosa que creo que vale la pena agregar es que puede usar jQuery normalmente una vez que lo haya incluido en su script, excepto por 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 crea un contenedor para GM_xmlhttpRequest (la versión Greasemonkey de XHR) y usa jQuery's
ajaxSetup()
para especificar su versión ajustada como predeterminada. Una vez que hagas esto, puedes usar$.get
y$.post
como siempreTambién puede tener problemas con jQuery
$.getJSON
porque carga JSONP usando<script>
etiquetas. Esto conduce a errores porque jQuery define la función de devolución de llamada en el ámbito de la ventana Greasemonkey, y los scripts cargados buscan la devolución de llamada en el ámbito de la ventana principal. Su mejor opción es usar$.get
en su lugar y analizar el resultado conJSON.parse()
.fuente
Puede crear una nueva secuencia de comandos utilizando la Nueva secuencia de comandos de usuario en Greasemonkey, pero debe editar el archivo config.xml dentro de la carpeta gm_scripts.
Su archivo config.xml debe tener una sintaxis similar a esta:
Observe la
<Require>
etiquetaEn su script puede usar la sintaxis directa de jQuery. Asegúrese de tener la etiqueta require en el encabezado Greasemonkey. Aquí hay un ejemplo de 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 copia el archivo manualmente allí.
Feliz jQuerying!
fuente
Actualización : como dice el comentario a continuación, esta respuesta es obsoleta.
Como todos los demás han dicho, @require solo se ejecuta cuando se ha instalado el script. Sin embargo, también debe tener en cuenta que actualmente jQuery 1.4. * No funciona con greasemonkey. Puede ver aquí para más detalles: http://forum.jquery.com/topic/importing-jquery-1-4-1-into-greasemonkey-scripts-generates-an-error
Tendrá que usar jQuery 1.3.2 hasta que las cosas cambien.
fuente
Si está utilizando Chrome, debe optar por una alternativa, ya que Chromium no es compatible
@require
.Fuente: The Chromium Project - Guiones de usuario
Más detalles y alternativas sobre ¿Cómo puedo usar jQuery en los scripts de Greasemonkey en Google Chrome?
fuente
el meta @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 desvinculo los controladores de eventos jquery en greasemonkey?fuente
Puede obtener
Component unavailable
si importa el script jQuery directamente.Tal vez es de lo que estaba hablando @Conley ...
Puedes usar
que es una versión modificada para trabajar en Greasemonkey, y luego obtener el objeto jQuery
fuente
@require
¡ NO solo se procesa cuando el script se instala por primera vez! ¡En mis observaciones se procesa en el primer tiempo de ejecución! Por lo tanto, puede instalar un script a través del comando de Greasemonkey para crear un script completamente nuevo. Lo único que debe tener en cuenta es que no se activa la recarga de la página, antes de agregar la@require
parte. (y guarde el nuevo script ...)fuente