2010-04-15 9 views

risposta

3

Beh, sarebbe certamente possibile se si incolla l'intero lotto di jQuery nel file UserJS, o magari creare un file UserJS separato per tutte le pagine con la libreria jQuery. Tuttavia, esiste la possibilità che sia in conflitto con qualsiasi pagina che utilizza jQuery.

A seconda delle vostre esigenze, forse potreste realizzare il vostro mini-quadro? Per esempio alcune funzioni semplici per afferrare gli elementi per tag/classe/id:

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

Nota: è possibile ottenere una migliore risposta sopra a Opera's forums.

+0

Grazie, ha funzionato. Un modo ancora più semplice per farlo era salvare jquery nella cartella userscripts dell'opera in modo che fosse eseguito su ogni pagina. Quindi potrei semplicemente usare il normale $ (document) .ready (function() {nel file javascript del mio utente. – RadiantHeart

+2

Se copi jQuery nella cartella JS dell'utente ricorda che gli script utente vengono eseguiti in ordine alfabetico, quindi forse chiamarlo qualcosa come 0-jquery.js aiuta a farlo funzionare prima di tutti gli altri script che ne hanno bisogno (Almeno noi (Opera) abbiamo implementato l'ordinamento alfabetico dei file di script utente allora, non so se abbiamo test espliciti per questo quindi non so se funziona ... Forse ho bisogno di aggiustarlo.) – hallvors

+0

Buon consiglio, grazie. – RadiantHeart

0

Solo per completezza:

Io lo uso regolarmente con i miei UserJS. Copia il tuo jquery.js nella tua cartella userJS.

Opzione 1:

per evitare che in conflitto con jQuery disponibili, utilizzare l'opzione noConflict all'interno del jqueryfile e associare jQuery con con il proprio identificativo (jQueryMyIdentifier = jQuery; jQuery = null;). il codice JS può essere avvolto con

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

Opzione 2:

check-out, come includere un JS remoti utilizzando JavaScript. implementare che includono la linea nel tuo JS.

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

o simile.

8

Ho appena scritto un utente OperaJS, che ho trasformato da un'estensione di Google Chrome, dove jQuery potrebbe essere facilmente caricato, ma qui in Opera ho dovuto usare un'altra soluzione, e volevo apportare modifiche minime nel mio codice.

Applico semplicemente un nuovo tag di script nell'intestazione del documento con una sorgente jQuery funzionante. Inizia a scaricare PRIMA che DOM sia pronto.

Questa è la mia soluzione di lavoro, spero che aiuti!

// ==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); 

})(); 
Problemi correlati