2010-04-15 16 views
9

के अंदर jQuery का उपयोग करना मुझे आश्चर्य है कि Opera User JavaScript के भीतर jQuery लोड करना संभव है, ताकि मैं इसमें jQuery कार्यक्षमता का उपयोग कर सकूं, यहां तक ​​कि उन पृष्ठों पर भी जो jQuery का उपयोग नहीं कर रहे हैं।ओपेरा उपयोगकर्ता जावास्क्रिप्ट

उत्तर

3

वैसे यह निश्चित रूप से संभव होगा यदि आप अपने यूजरजेएस फ़ाइल में पूरी तरह से jQuery को पेस्ट करते हैं, या शायद jQuery लाइब्रेरी के साथ सभी पृष्ठों के लिए एक अलग UserJS फ़ाइल बनाते हैं। हालांकि, एक संभावना है कि यह jQuery का उपयोग कर किसी भी पेज के साथ संघर्ष करेगा।

आपकी आवश्यकताओं के आधार पर, हो सकता है कि आप अपना खुद का मिनी-फ्रेमवर्क रोल कर सकें? उदाहरण के लिए कुछ सरल कार्यों टैग/वर्ग/आईडी द्वारा तत्वों हड़पने के लिए:

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

नोट: यदि आप Opera's forums पर एक बेहतर प्रतिक्रिया से अधिक हो सकता है।

+0

धन्यवाद, यह काम किया। ऐसा करने का एक क्लीनर तरीका जेपीरी को ओपेरा उपयोगकर्ता-फ़ोल्डर में सहेजना था ताकि यह प्रत्येक पृष्ठ पर चल सके। तो मैं अपने सामान्य उपयोगकर्ता जावास्क्रिप्ट फ़ाइल में सामान्य $ (दस्तावेज़) .ready (function() {का उपयोग कर सकता हूं। – RadiantHeart

+2

यदि आप अपने उपयोगकर्ता जेएस फ़ोल्डर में jQuery की प्रतिलिपि बनाते हैं तो याद रखें कि उपयोगकर्ता स्क्रिप्ट वर्णमाला क्रम में चलती हैं, तो शायद इसे कुछ ऐसा कहें 0-jquery.js इसे अन्य सभी स्क्रिप्ट्स की आवश्यकता से पहले चलाने में मदद करता है। (कम से कम हम (ओपेरा) ने उपयोगकर्ता स्क्रिप्ट फ़ाइलों की वर्णानुक्रमिक सॉर्टिंग को कार्यान्वित किया, तो पता नहीं है कि हमारे पास इसके लिए स्पष्ट परीक्षण हैं या नहीं, यह काम करता है .. शायद मुझे इसे ठीक करने की ज़रूरत है।) – hallvors

+0

अच्छी टिप, धन्यवाद। – RadiantHeart

0
बस संपूर्णता के लिए

:

मैं इसे नियमित रूप से उपयोग मेरी userJS साथ। बस अपने jquery.js को अपने उपयोगकर्ता जेएस फ़ोल्डर में कॉपी करें।

विकल्प 1:

उपलब्ध jQuery के साथ परस्पर विरोधी से इसे रखने के लिए, अपने खुद के पहचानकर्ता के साथ साथ jqueryfile और सहयोगी jQuery के भीतर noConflict विकल्प का उपयोग (jQueryMyIdentifier = jQuery, jQuery = बातिल;)।

जांच, कैसे जावास्क्रिप्ट का उपयोग कर एक दूरस्थ js शामिल करने के लिए: अपने जे एस कोड के साथ

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

विकल्प 2 लपेटा जा सकता है। कार्यान्वित करें जिसमें आपके जेएस में लाइन शामिल है।

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

या समान रूप से।

8

मैंने अभी एक ओपेरा उपयोगकर्ता जेएस लिखा है, जिसे मैंने Google क्रोम एक्सटेंशन से बदल दिया है, जहां jQuery को आसानी से लोड किया जा सकता है, लेकिन यहां ओपेरा में मुझे एक और समाधान का उपयोग करना पड़ा, और मैं अपने कोड में न्यूनतम परिवर्तन करना चाहता था।

मैं दस्तावेज़ के शीर्षलेख में एक काम कर रहे jQuery स्रोत के साथ एक नया स्क्रिप्ट टैग जोड़ता हूं। डोम तैयार होने से पहले डाउनलोड होना शुरू हो जाता है।

यह मेरा कामकाजी समाधान है, उम्मीद है कि मदद करता है!

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

})(); 
संबंधित मुद्दे