গুগল ক্রোমে গ্রিসমোনকি স্ক্রিপ্টগুলিতে কীভাবে আমি jQuery ব্যবহার করতে পারি?


157

আপনারা কেউ কেউ জানেন যে গুগল ক্রোম গ্রিসমোনকি স্ক্রিপ্টগুলিতে কিছু মারাত্মক সীমাবদ্ধতা রেখেছে।

ক্রোমিয়াম সমর্থন করে না @require, @resource, unsafeWindow, GM_registerMenuCommand, GM_setValue, অথবা GM_getValue

প্রয়োজন ছাড়াই, আমি গুগল ক্রোমের অধীনে গ্রীসমনকি স্ক্রিপ্টে jQuery লাইব্রেরি অন্তর্ভুক্ত করার কোনও উপায় খুঁজে পাচ্ছি না।

এই বিষয়ে কারও কি কিছু পরামর্শ আছে?


19
এটি লক্ষণীয় যে ট্যাম্পারমনকি সহ গুগল ক্রোমের @requireএখনকার জন্য সমর্থন রয়েছে , যা উত্তরেরগুলির চেয়ে অনেক সহজ পদ্ধতির।
স্টিন শ্যাট

2
টেম্পারমোনকি অনিরাপদ উইন্ডোও সমর্থন করে যা ইতিমধ্যে jQuery থাকা পৃষ্ঠাগুলির জন্য খুব সুন্দর। var $ = unsafeWindow.jQuery;
টিম গুডম্যান

1
@requireএমন সাইটগুলিতে দুর্দান্ত কাজ করে যেখানে আপনি হাজার হাজার বা মিলিয়ন জেএস লাইব্রেরিগুলির যে কোনওটির সাথে বিরোধের বিষয়ে উদ্বিগ্ন নন যা লোড হওয়ার পরে। তবে আপনি যদি অন্য কোনও কিছুর জন্য writing ব্যবহার করে কোনও সাইটের জন্য কোনও স্ক্রিপ্ট লিখছেন, বা আরও খারাপ কোনও স্ক্রিপ্ট লেখার জন্য যে কোনও সাইট চালানো যায় তবে নীচে tghw দ্বারা ব্যাখ্যা করা তুলনামূলকভাবে নিরাপদ লোডিং পদ্ধতিটি ব্যবহার করুন ।
জিডর্ন

উত্তর:


192

থেকে ": - এরিক Vold এর ব্লগ ব্যবহার jQuery এর ব্যবহারকারী স্ক্রিপ্ট টিপ"

// ==UserScript==
// @name         jQuery For Chrome (A Cross Browser Example)
// @namespace    jQueryForChromeExample
// @include      *
// @author       Erik Vergobbi Vold & Tyler G. Hicks-Wright
// @description  This userscript is meant to be an example on how to use jQuery in a userscript on Google Chrome.
// ==/UserScript==

// a function that loads jQuery and calls a callback function when jQuery has finished loading
function addJQuery(callback) {
  var script = document.createElement("script");
  script.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js");
  script.addEventListener('load', function() {
    var script = document.createElement("script");
    script.textContent = "window.jQ=jQuery.noConflict(true);(" + callback.toString() + ")();";
    document.body.appendChild(script);
  }, false);
  document.body.appendChild(script);
}

// the guts of this userscript
function main() {
  // Note, jQ replaces $ to avoid conflicts.
  alert("There are " + jQ('a').length + " links on this page.");
}

// load jQuery and execute the main function
addJQuery(main);

'লোড' এর জন্য অ্যাডএভেন্টলিস্টনারের অভ্যন্তরে 3 টি লাইনের পরিবর্তে "কলব্যাক ();" কেবলই কাজ করো?
সিআরডিএক্স

6
আমার পৃষ্ঠায় ইতিমধ্যে jQuery অন্তর্ভুক্ত রয়েছে, তবে মনে হয় ইউজার স্ক্রিপ্টে jQuery ব্যবহার করার জন্য উপরের কোডটি এখনও প্রয়োজন। যাইহোক, দুটি jQuery অন্তর্ভুক্ত বিরোধের কারণ হতে পারে, সুতরাং আপনার মূল () ফাংশনের প্রথম লাইন jQuery.noConflict () হতে পারে;
স্লোলাইফ

2
আমি লাইনে সংশোধন করেছেন script.textContent = "(" + callback.toString() + ")();";করতে script.textContent = "jQuery.noConflict();(" + callback.toString() + ")();";আমার নিজের ব্যবহারকারী স্ক্রিপ্ট টেমপ্লেটে তাই কোনো বিস্ময়কর দ্বন্দ্ব থাকবে না। :)
আরসিই

1
@hippietrail ইন main(), আপনি ব্যবহার করতে পারেন $.loadScript()এবং তারপরে jQueryUI লোডস্ক্রিপ্ট সমাপ্ত হওয়ার পরে সমস্ত কিছু চালানো যেতে পারে ।
tghw

1
-1: এই পদ্ধতির সাথে কোডটি mainলক্ষ্য পৃষ্ঠার প্রসঙ্গে কার্যকর করা হবে, অর্থাত (অন্যান্য বিষয়গুলির মধ্যে) লক্ষ্য পৃষ্ঠার ক্রস-সাইট অনুরোধ নীতিটি প্রয়োগ হয় - (যেমন, আমি এটি দেখেছি তার GM_xmlhttpRequestআগে আমাকে পুনরায় প্রত্যাখ্যান করতে হয়েছিল) আমাকে সাহায্য না)। শেষ পর্যন্ত আমি কেবল কোডটি আটকানো কপি করেছি jquery.min.js
জিন হোমিনাল

43

একটি ডকুমেন্টের ফাংশন, কোড এবং অন্যান্য স্ক্রিপ্ট চালাতে আমাকে সহায়তা করতে আমি এরিক ভল্টের স্ক্রিপ্টের ভিত্তিতে কয়েকটি ফাংশন লিখেছি । আপনি এগুলিকে পৃষ্ঠায় jQuery লোড করতে এবং তারপরে বৈশ্বিক windowসুযোগের আওতায় কোড চালাতে ব্যবহার করতে পারেন ।

ব্যবহারের উদাহরণ

// ==UserScript==
// @name           Example from http://stackoverflow.com/q/6834930
// @version        1.3
// @namespace      http://stackoverflow.com/q/6834930
// @description    An example, adding a border to a post on Stack Overflow.
// @include        http://stackoverflow.com/questions/2246901/*
// ==/UserScript==

var load,execute,loadAndExecute;load=function(a,b,c){var d;d=document.createElement("script"),d.setAttribute("src",a),b!=null&&d.addEventListener("load",b),c!=null&&d.addEventListener("error",c),document.body.appendChild(d);return d},execute=function(a){var b,c;typeof a=="function"?b="("+a+")();":b=a,c=document.createElement("script"),c.textContent=b,document.body.appendChild(c);return c},loadAndExecute=function(a,b){return load(a,function(){return execute(b)})};

loadAndExecute("//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js", function() {
    $("#answer-6834930").css("border", ".5em solid black");
});

আপনি এখানে ক্লিক করতে পারেনএটি ইনস্টল করতে পারেন, যদি আপনি বিশ্বাস করেন যে আমি আপনাকে দূষিত কিছু ইনস্টল করার চেষ্টা করছি না এবং কেউ আমার পোস্টটিকে অন্য কোনও কিছুর দিকে নির্দেশ করার জন্য সম্পাদনা করেনি। পৃষ্ঠাটি পুনরায় লোড করুন এবং আপনার আমার পোস্টের চারপাশে একটি সীমানা দেখা উচিত।

ক্রিয়াকলাপ

load(url, onLoad, onError)

urlনথিতে স্ক্রিপ্টটি লোড করে । .চ্ছিকভাবে, কলব্যাকগুলি onLoadএবং এর জন্য সরবরাহ করা যেতে পারে onError

execute(functionOrCode)

নথিতে কোনও ফাংশন বা কোডের স্ট্রিং serোকানো হয় এবং এটি সম্পাদন করে। ফাংশনগুলি সন্নিবেশ করার আগে সোর্স কোডে রূপান্তরিত হয়, তাই তারা তাদের বর্তমান সুযোগ / সমাপ্তি হারাবে এবং বৈশ্বিক windowসুযোগের নীচে চালিত হবে ।

loadAndExecute(url, functionOrCode)

একটি শর্টকাট; এটি স্ক্রিপ্টটি লোড করে url, তারপরে সন্নিবেশ করে এবং কার্যকর করেfunctionOrCode সফল হলে কার্যকর করে।

কোড

function load(url, onLoad, onError) {
    e = document.createElement("script");
    e.setAttribute("src", url);

    if (onLoad != null) { e.addEventListener("load", onLoad); }
    if (onError != null) { e.addEventListener("error", onError); }

    document.body.appendChild(e);

    return e;
}

function execute(functionOrCode) {
    if (typeof functionOrCode === "function") {
        code = "(" + functionOrCode + ")();";
    } else {
        code = functionOrCode;
    }

    e = document.createElement("script");
    e.textContent = code;

    document.body.appendChild(e);

    return e;
}

function loadAndExecute(url, functionOrCode) {
    load(url, function() { execute(functionOrCode); });
}

@ সাইফঙ্ক হ্যাঁ, এই কয়েকটি চরিত্র সংরক্ষণ করা আমার পক্ষে অত্যন্ত গুরুত্বপূর্ণ ছিল। আসলে, এই পোস্টটি এত অর্থহীনভাবে ব্যবহার করার কারণে আমি বেশ বোবা অনুভব করছি। আমি এটি সরিয়ে ফেলব।
জেরেমি ব্যাংকগুলি

18

কল করে কলহের ভয় ছাড়াই jQuery ব্যবহার করুন jQuery.noConflict(true)। তাই ভালো:

function GM_main ($) {
    alert ('jQuery is installed with no conflicts! The version is: ' + $.fn.jquery);
}

add_jQuery (GM_main, "1.7.2");

function add_jQuery (callbackFn, jqVersion) {
    jqVersion       = jqVersion || "1.7.2";
    var D           = document;
    var targ        = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
    var scriptNode  = D.createElement ('script');
    scriptNode.src  = 'http://ajax.googleapis.com/ajax/libs/jquery/'
                    + jqVersion
                    + '/jquery.min.js'
                    ;
    scriptNode.addEventListener ("load", function () {
        var scriptNode          = D.createElement ("script");
        scriptNode.textContent  =
            'var gm_jQuery  = jQuery.noConflict (true);\n'
            + '(' + callbackFn.toString () + ')(gm_jQuery);'
        ;
        targ.appendChild (scriptNode);
    }, false);
    targ.appendChild (scriptNode);
}


তবে, ক্রস ব্রাউজারের স্ক্রিপ্টগুলির জন্য, আপনি যখন পারেন তখন jQuery এর একটি দুর্দান্ত, দ্রুত, স্থানীয় কপির সুবিধা নেবেন না কেন?

নিম্নলিখিতটি একটি ক্রোম ব্যবহারকারীদের স্ক্রিপ্ট এবং গ্রিসমোনকি স্ক্রিপ্ট হিসাবে কাজ করে @requireএবং প্ল্যাটফর্মটি সমর্থন করে তবে এটি jQuery এর দুর্দান্ত স্থানীয় কপি ব্যবহার করে ।

// ==UserScript==
// @name     _Smart, cross-browser jquery-using script
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant    GM_info
// ==/UserScript==

function GM_main ($) {
    alert ('jQuery is installed with no conflicts! The version is: ' + $.fn.jquery);
}

if (typeof jQuery === "function") {
    console.log ("Running with local copy of jQuery!");
    GM_main (jQuery);
}
else {
    console.log ("fetching jQuery from some 3rd-party server.");
    add_jQuery (GM_main, "1.7.2");
}

function add_jQuery (callbackFn, jqVersion) {
    var jqVersion   = jqVersion || "1.7.2";
    var D           = document;
    var targ        = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
    var scriptNode  = D.createElement ('script');
    scriptNode.src  = 'http://ajax.googleapis.com/ajax/libs/jquery/'
                    + jqVersion
                    + '/jquery.min.js'
                    ;
    scriptNode.addEventListener ("load", function () {
        var scriptNode          = D.createElement ("script");
        scriptNode.textContent  =
            'var gm_jQuery  = jQuery.noConflict (true);\n'
            + '(' + callbackFn.toString () + ')(gm_jQuery);'
        ;
        targ.appendChild (scriptNode);
    }, false);
    targ.appendChild (scriptNode);
}

3
+1 চিত্তাকর্ষক, এই সমস্ত উত্তরগুলির মধ্যে আপনার কেবলমাত্র উত্তরটি ব্যবহার করতে বলা হয়েছে, $ = unsafeWindow.jQueryপৃষ্ঠাটিতে jQuery থাকলে আপনি এটিও ব্যবহার করতে পারেন (আমি এটি কেবল টেম্পারমনকিতে পরীক্ষা করেছি)।
এএমকে

ক্যাভিয়েট: আই-র কিছু সংস্করণে কনসোল.লগ নেই (যদি না আপনি ডেভ সরঞ্জামগুলি ইনস্টল করেন, তবে স্ক্রিপ্টটি ক্র্যাশ হয়ে যাবে। সাধারণত আপনি যখন আপনার স্ক্রিপ্টটি বিকাশকারী এবং কিউএ লোকের বাইরে প্রকাশ করেছেন কেবল তখনই আপনি এটি আবিষ্কার করতে পারবেন।
পার্সিংফেজ

1
@ পার্সিংফেজ, আইই এখানে অনেকটা এনএ। শেষ আমি পরীক্ষা করেছিলাম, IE এখনও ইউজার স্ক্রিপ্টগুলি ভালভাবে সমর্থন করে না (¿মোটেও?) আইই 10 এর সাথে কি এটি পরিবর্তন হয়েছে?
ব্রক অ্যাডামস

ব্রোক - ভাল কথা, আমি আইই এর অসম্পূর্ণতা ম্যাট্রিক্সটি আমার মাথায় ধরে রাখতে ব্যর্থ হয়েছি। সুতরাং, ব্যবহারকারীদের স্ক্রিপ্টগুলিতে সরাসরি প্রযোজ্য নয় (যদিও এটি প্রদর্শিত হয় যে লোকেরা মাঝে মধ্যে একটি আইই সমাধান সমাধান করতে চেষ্টা করেন), তবে আরও সাধারণ গোঁতা।
পার্সিংফেজ

15

যদি পৃষ্ঠাটিতে ইতিমধ্যে jQuery রয়েছে, তবে কেবল এই টেম্পলেটটি অনুসরণ করুন:

// ==UserScript==
// @name          My Script
// @namespace     my-script
// @description   Blah
// @version       1.0
// @include       http://site.com/*
// @author        Me
// ==/UserScript==

var main = function () {

    // use $ or jQuery here, however the page is using it

};

// Inject our main script
var script = document.createElement('script');
script.type = "text/javascript";
script.textContent = '(' + main.toString() + ')();';
document.body.appendChild(script);

আমি মনে করি না যে এটি কাজ করে কারণ ডকুমেন্ট উইন্ডোতে ব্যবহারকারী স্ক্রিপ্টের অ্যাক্সেস নেই?
ক্রিস্টোফ

@Christoph এটা কাজ করে, আমি আছে এবং আমি এখনও ব্যবহার করছি userscript এই পদ্ধতি ব্যবহার করে।
মটিটি

1
এটি পৃষ্ঠায় গ্রিজমোনকি স্ক্রিপ্টটি আসলে ইনজেকশন দিচ্ছে। সুতরাং সম্ভবত গ্রিসমোনকি কয়েকটি সুরক্ষার বাই-পাস করে।
থাইমাইন

1
@ থাইমাইন আমি লক্ষ্য করেছি যে এই পদ্ধতিটি অনাকাঙ্ক্ষিত পৃষ্ঠাগুলিতে ব্যবহারকারীদের স্ক্রিপ্ট ইনজেক্ট করে। আমাকে একটি ifবিবৃতিতে ইনজেকশন অংশটি গুটিয়ে রাখতে হয়েছিল যা পরীক্ষা করে window.location
মট্টি

12

সহজ উপায়টি requiredকীওয়ার্ডটি ব্যবহার করছে :

// @require     http://code.jquery.com/jquery-latest.js

এটি কেবল এক্সটেনশন বাস্তবায়ন দ্বারা সমর্থিত।
ব্যবহারকারী 2284570

@ ব্যবহারকারী 2284570 এটি যে কোনও ইউজার স্ক্রিপ্ট এক্সটেনশন দ্বারা সমর্থিত আমি যে কোনও ব্রাউজারের জন্য খুঁজে পেতে পারি।
ম্যাট এম।

@MattM। আমার অর্থ ইউজার স্ক্রিপ্টগুলি চালনার জন্য আপনাকে অপেরা এবং Chrome এ একটি এক্সটেনশন ইনস্টল করতে হবে না।
ব্যবহারকারী 2284570

7

Chrome স্ক্রিপ্টগুলির জন্য jQuery এর সম্পূর্ণ অনুলিপি সহ খুব সহজেই আসার সহজ উপায় আছে যখন এই স্ক্রিপ্টগুলি আসলে কোনও সুবিধাযুক্ত বৈশিষ্ট্য (GM_ * ফাংশন, ইত্যাদি) ব্যবহার করে না ...

কেবল স্ক্রিপ্টটি নিজেই পৃষ্ঠায় ডিওমে sertোকান এবং সম্পাদন করুন! সর্বোত্তম অংশটি হ'ল এই কৌশলটি ফায়ারফক্স + গ্রিসমোনকিতে ঠিক একইভাবে কাজ করে, যাতে আপনি উভয়ের জন্য একই স্ক্রিপ্টটি ব্যবহার করতে পারেন:

var script = document.createElement("script");
script.type = "text/javascript";
script.textContent = "(" + threadComments.toString() + ")(jQuery)";
document.body.appendChild(script);

function threadComments($) {
    // taken from kip's http://userscripts-mirror.org/scripts/review/62163
    var goodletters = Array('\u00c0','\u00c1','\u00c2','\u00c3','\u00c4','\u00c5','\u00c6','\u00c7'
                             ,'\u00c8','\u00c9','\u00ca','\u00cb','\u00cc','\u00cd','\u00ce','\u00cf'
                                      ,'\u00d1','\u00d2','\u00d3','\u00d4','\u00d5','\u00d6'         
                             ,'\u00d8','\u00d9','\u00da','\u00db','\u00dc','\u00dd'                  
                             ,'\u00e0','\u00e1','\u00e2','\u00e3','\u00e4','\u00e5','\u00e6','\u00e7'
                             ,'\u00e8','\u00e9','\u00ea','\u00eb','\u00ec','\u00ed','\u00ee','\u00ef'
                                      ,'\u00f1','\u00f2','\u00f3','\u00f4','\u00f5','\u00f6'         
                             ,'\u00f8','\u00f9','\u00fa','\u00fb','\u00fc','\u00fd'         ,'\u00ff').join('');

    // from Benjamin Dumke's http://userscripts-mirror.org/scripts/review/68252
    function goodify(s)
      {
         good = new RegExp("^[" + goodletters + "\\w]{3}");
         bad = new RegExp("[^" + goodletters + "\\w]");
         original = s;
         while (s.length >3 && !s.match(good)) {
            s = s.replace(bad, "");
            }
         if (!s.match(good))
         {
           // failed, so we might as well use the original
           s = original;
         }
         return s;
      }  

    in_reply_to = {};


    function who(c, other_way) {


        if (other_way)
        {
            // this is closer to the real @-reply heuristics
            m = /@(\S+)/.exec(c);
        }
        else
        {
            m = /@([^ .:!?,()[\]{}]+)/.exec(c);
        }
        if (!m) {return}
        if (other_way) {return goodify(m[1]).toLowerCase().slice(0,3);}
        else {return m[1].toLowerCase().slice(0,3);}
    }

    function matcher(user, other_way) {
        if (other_way)
        {
            return function () {
                return goodify($(this).find(".comment-user").text()).toLowerCase().slice(0,3) == user
                }
        }
        else
        {
            return function () {
                return $(this).find(".comment-user").text().toLowerCase().slice(0,3) == user
                }
        }
    }

    function replyfilter(id) {
        return function() {
            return in_reply_to[$(this).attr("id")] == id;
        }
    }

    function find_reference() {
        comment_text = $(this).find(".comment-text").text();
        if (who(comment_text))
        {
            fil = matcher(who(comment_text));
            all = $(this).prevAll("tr.comment").filter(fil);
            if (all.length == 0)
            {
                // no name matched, let's try harder
                fil = matcher(who(comment_text, true), true);
                all = $(this).prevAll("tr.comment").filter(fil);
                if (all.length == 0) {return}
            }
            reference_id = all.eq(0).attr("id");
            in_reply_to[$(this).attr("id")] = reference_id;
        }
    }


    // How far may comments be indented?
    // Note that MAX_NESTING = 3 means there are
    // up to *four* levels (including top-level)
    MAX_NESTING = 3

    // How many pixels of indentation per level?
    INDENT = 30

    function indenter(parent) {

        for (var i = MAX_NESTING; i > 0; i--)
        {
            if (parent.hasClass("threading-" + (i-1)) || (i == MAX_NESTING && parent.hasClass("threading-" + i)))
            {
                return function() {
                    $(this).addClass("threading-" + i).find(".comment-text").css({"padding-left": INDENT*i});
                }
            }
        }

        return function() {
            $(this).addClass("threading-1").find(".comment-text").css({"padding-left": INDENT});
        }

    }

    function do_threading(){
        id = $(this).attr("id");
        replies = $(this).nextAll("tr.comment").filter(replyfilter(id));
        ind = indenter($(this));
        replies.each(ind);
        replies.insertAfter(this);
    }

    function go() {
        $("tr.comment").each(find_reference);
        $("tr.comment").each(do_threading);
    }

    $.ajaxSetup({complete: go});
    go();
}

(অপ্রত্যাশিতভাবে শোগ 9 থেকে মেটা.স্ট্যাকওভারফ্লোতে চুরি হয়েছে যেহেতু তিনি এটিকে এখানে সরান নি, এবং আমাকে মেটা পোস্ট মুছতে হবে ..)


4

এছাড়াও, আপনি আপনার স্ক্রিপ্টটি ক্রোম এক্সটেনশনে jQuery দিয়ে প্যাক করতে পারেন। দেখুন গুগল ক্রোম এর বিষয়বস্তু স্ক্রিপ্ট

ক্রিস এক্সটেনশানগুলি, গ্রিসমোনকি স্ক্রিপ্টগুলির বিপরীতে, স্বয়ংক্রিয়ভাবে আপডেট হতে পারে।


2
হ্যাঁ, এটি আরও সহজ হবে। তবে আমি আপাতত ইউজার স্ক্রিপ্ট.অর্গের মাধ্যমে আমার স্ক্রিপ্টটি বজায় রাখতে পছন্দ করি এবং গুগল এক্সটেনশান সংগ্রহস্থলের সাহায্যে অপ্রয়োজনীয়তা তৈরি করি না।
আলেক

4
এবং গুগল ওয়েব স্টোরে আপলোড করতে এটির দাম $ 5 ডলার।
ক্যামিলো মার্টিন

4

আরও সহজ সমাধান: আপনার ব্যবহারকারী স্ক্রিপ্টের শীর্ষে jquery.min.js এর বিষয়বস্তুগুলি কাটা + কেটে দিন। সম্পন্ন.

প্রস্তাবিত উত্তরগুলির সাথে আমি বিভিন্ন সমস্যা পেয়েছি। AddJQuery () সমাধান বেশিরভাগ পৃষ্ঠায় কাজ করে তবে অনেকগুলিতে বাগ রয়েছে। আপনি যদি সমস্যাগুলির মধ্যে চলে যান তবে আপনার স্ক্রিপ্টে jquery সামগ্রীগুলি অনুলিপি করুন paste


হ্যাঁ, আমি মনে করি এটি সর্বাধিক অর্থবোধ করে, কারণ আপনি এখানে যা কিছু পরামর্শ দিয়েছেন ঠিক তেমনটি করে ক্রোম সংস্করণ তৈরি করে এমন একটি সামান্য বিল্ড স্ক্রিপ্টও তৈরি করতে পারে।
dkinzer

2

আপনি document.defaultView.jQueryযদি আপনার জিএম স্ক্রিপ্ট আলায় নির্ভর করতে না পারেন তবে আমি অবাক হই :

if (document.defaultView.jQuery) {
  jQueryLoaded(document.defaultView.jQuery);
} else {
  var jq = document.createElement('script');
  jq.src = 'http://jquery.com/src/jquery-latest.js';
  jq.type = 'text/javascript';
  document.getElementsByTagName('head')[0].appendChild(jq);
  (function() { 
    if (document.defaultView.jQuery) jQueryLoaded(document.defaultView.jQuery);
    else setTimeout(arguments.callee, 100);
  })();
}

function jQueryLoaded($) {
  console.dir($);
}

1

আর একটি উপায় হ'ল jQuery ম্যানুয়ালি লোড করতে আপনার স্ক্রিপ্টটি পরিবর্তন করতে হবে। Http://joanpiedra.com/jquery/greasemonkey/ থেকে উদাহরণ :

// Add jQuery
var GM_JQ = document.createElement('script');
GM_JQ.src = 'http://jquery.com/src/jquery-latest.js';
GM_JQ.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(GM_JQ);

// Check if jQuery's loaded
function GM_wait() {
    if(typeof unsafeWindow.jQuery == 'undefined') { window.setTimeout(GM_wait,100); }
else { $ = unsafeWindow.jQuery; letsJQuery(); }
}
GM_wait();

// All your GM code must be inside this function
function letsJQuery() {
    alert($); // check if the dollar (jquery) function works
}

সম্পাদনা: ড্র্যাটস! পরীক্ষার পরে এটি প্রদর্শিত হয় যেহেতু গুগল ক্রোম প্রকৃত ওয়েবপৃষ্ঠা থেকে পৃথক স্কোপ / প্রক্রিয়াতে ব্যবহারকারী স্ক্রিপ্ট / এক্সটেনশানগুলি চালায়। আপনি একটি এক্সএমএলএইচটিপিআরকোয়েস্ট ব্যবহার করে jQuery কোডটি ডাউনলোড করতে পারেন এবং তারপরে এটি মূল্যায়ন করতে পারেন তবে আপনাকে এমন একটি সার্ভারে কোডটি হোস্ট করতে হবে যা শিরোলেখ ব্যবহার করে ক্রস-অরিজিন রিসোর্স ভাগ করে নেওয়ার অনুমতি দেয় Access-Control-Allow-Origin: *। দুর্ভাগ্যক্রমে jQuery সহ বর্তমান সিডিএনগুলির মধ্যে এটির কোনও সমর্থন নেই।


-1

Chrome কলসোলে jQuery এম্বেড করার জন্য নিখুঁত এক্সটেনশন যতটা সহজ আপনি কল্পনা করতে পারেন। এই এক্সটেনশনটি যদি জিক্যুরিটি ইতিমধ্যে পৃষ্ঠাতে এম্বেড করা থাকে তবেও তা যুক্ত করে।

এই এক্সটেনশানটি আপনি চান যে কোনও পৃষ্ঠাতে jQuery এম্বেড করতে ব্যবহৃত হয়েছিল। এটি কনসোল শেলটিতে jQuery ব্যবহার করতে দেয় (আপনি "Ctrl + Shift + j" দ্বারা ক্রোম কনসোলটি আহ্বান করতে পারেন)।

নির্বাচিত ট্যাবে jQuery এম্বেড করতে এক্সটেনশন বোতামে ক্লিক করুন।

সম্প্রসারণের লিঙ্ক: https://chrome.google.com/extensions/detail/gbmifchmngifmadobkcpijhhldeeelkc


এটি আসলে উত্তর নয়। এবং আমার প্রয়োজন না হলে আমি কেন jQuery লোড করতে চাই?
ভিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.