2010-04-15 5 views

Antwort

3

Nun, es wäre sicherlich möglich, wenn Sie die ganze Menge von jQuery in Ihre UserJS-Datei einfügen oder vielleicht eine separate UserJS-Datei für alle Seiten mit der jQuery-Bibliothek erstellen. Es besteht jedoch die Möglichkeit, dass Konflikte mit Seiten auftreten, die jQuery verwenden.

Je nach Ihren Anforderungen könnten Sie vielleicht Ihr eigenes Mini-Framework erstellen? Zum Beispiel einiger einfachen Funktionen Elemente nach Tag/Klasse/id greifen:

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

Hinweis: Sie eine bessere Antwort auf bei Opera's forums bekommen können.

+0

Danke, es hat funktioniert. Ein noch sauberer Weg, dies zu tun, war es, jquery im userscripts-Ordner von opera zu speichern, damit es auf jeder Seite ausgeführt wird. Dann könnte ich einfach das normale $ (document) .ready (function() {in meiner eigenen Benutzer-Javascript-Datei verwenden. – RadiantHeart

+2

Wenn Sie jQuery in Ihren Benutzer-JS-Ordner kopieren, denken Sie daran, dass Benutzerskripts in alphabetischer Reihenfolge laufen, also vielleicht etwas ähnliches 0-jquery.js hilft dabei, es vor allen anderen Skripten laufen zu lassen, die es brauchen (Zumindest wir (Opera) implementiert alphabetische Sortierung von Benutzer-Skript-Dateien damals, weiß nicht, ob wir explizite Tests dafür haben, also keine Ahnung, ob es funktioniert .. Vielleicht muss ich das beheben.) – hallvors

+0

Guter Tipp, danke. – RadiantHeart

0

Nur der Vollständigkeit halber:

Ich benutze es regelmäßig mit meinem UserJS. Kopieren Sie einfach Ihre jquery.js in Ihren userJS-Ordner.

Option 1:

, damit er nicht mit den verfügbaren jquery Konflikt, verwenden Sie die Option noConflict im jqueryfile und Associate jQuery mit mit Ihrem eigenen Kennung (jQueryMyIdentifier = jQuery; jQuery = null;).

Check-out, wie man zählt ein Remote-js mit javascript: Ihr JS-Code kann mit

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

Option 2 gewickelt werden. implementieren Sie die Zeile in Ihre JS.

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

oder gleich.

8

Ich habe gerade einen Opera userJS geschrieben, den ich von einer Google Chrome Erweiterung umgewandelt habe, wo jQuery einfach geladen werden konnte, aber hier in Opera musste ich eine andere Lösung verwenden, und ich wollte minimale Änderungen in meinem Code vornehmen.

Ich füge einfach eine neue Skript-Tag im Header des Dokuments mit einer funktionierenden jQuery-Quelle. Es wird heruntergeladen, bevor DOM bereit ist.

Das ist meine Arbeitslösung, hoffe das hilft!

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

})(); 
Verwandte Themen