2010-04-15 15 views

Respuesta

3

Bueno, sin duda sería posible pegar todo el jQuery en su archivo UserJS, o quizás crear un archivo UserJS separado para todas las páginas con la biblioteca jQuery. Sin embargo, existe la posibilidad de que entre en conflicto con cualquier página que use jQuery.

Dependiendo de sus requisitos, ¿tal vez podría hacer rodar su propio mini-marco? Por ejemplo, algunas funciones simples para agarrar los elementos por etiqueta/clase/id:

function $id(id) { 
    return document.getElementById(id); 
} 

Nota: es posible obtener una mejor respuesta a las más de Opera's forums.

+0

Gracias, funcionó. Una forma aún más limpia de hacerlo fue guardar jquery en la carpeta de comandos de usuario de opera para que se ejecute en cada página. Entonces podría usar el $ (documento) .registrado (función() {normal en mi propio archivo javascript de usuario. – RadiantHeart

+2

Si copia jQuery a su carpeta JS de usuario, recuerde que las secuencias de comandos del usuario se ejecutan en orden alfabético, por lo que tal vez lo llame algo así como 0-jquery.js ayuda a que se ejecute antes que todos los demás scripts que lo necesiten (Al menos nosotros (Opera) implementamos la ordenación alfabética de los archivos de script del usuario en ese momento, no sabemos si tenemos pruebas explícitas para eso, así que no tengo idea si funciona ... Tal vez necesito arreglar eso.) – hallvors

+0

Buen consejo, gracias. – RadiantHeart

0

simplemente para la corrección:

lo uso regularmente con mis userJS. Simplemente copie su jquery.js en su carpeta userJS.

Opción 1:

para que no se entra en conflicto con jQuery disponible, utilice la opción noConflict dentro del jqueryfile y asociarse con jQuery con su propio identificador (jQueryMyIdentifier = jQuery, jQuery = null;). su código JS puede ser envuelto con

(function($) { 
    // normal jquery js based on, jQueryMyIdentifier 
    $('#bla').x(); 
})(jQueryMyIdentifier); 

Opción 2:

registro de salida, cómo incluir un js remotos usando javascript. implementar eso incluye línea en su JS.

include "http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" 

o similar.

8

Acabo de escribir un usuario de OperaJS, que transformé de una extensión de Google Chrome, donde jQuery podría cargarse fácilmente, pero aquí en Opera tuve que usar otra solución, y quería hacer cambios mínimos en mi código.

Acabo de agregar una nueva etiqueta de secuencia de comandos en el encabezado del documento con una fuente jQuery en funcionamiento. Comienza a descargarse ANTES de que DOM esté listo.

Esta es mi solución de trabajo, ¡espero que ayude!

// ==UserScript== 
// @name This is the name of my userJS 
// @description That's the description of my userJS 
// @include http://blahblah.hu/* 
// @include http://*.blahblah.hu/* 
// @match http://blahblah.hu/* 
// @match http://*.blahblah.hu/* 
// @version 1.0 
// ==/UserScript== 

(function() { 

    // include jQuery 
    var headID = document.getElementsByTagName("head")[0];   
    var newScript = document.createElement('script'); 
    newScript.type = 'text/javascript'; 
    newScript.id = 'myjQuery'; 
    newScript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js'; 
    headID.appendChild(newScript); 

    window.addEventListener('load', function (e) { 

     // you can write your jQuery code now! 
     $('#yourElementId').css('background-color', 'yellow'); 

     // further jQuery codes 
     // ... 

    }, false); 

})(); 
Cuestiones relacionadas