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


234

আমি এই লাইনটি লাগানোর চেষ্টা করেছি কিন্তু এটি কার্যকর হয় না:

// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js

jQuery গ্রিসমোনকিতে মোটেই কাজ করে না। গ্রিসমোনকিতে jQuery ব্যবহার করার অন্য কোনও উপায় আছে কি?

-

একই সমস্যাযুক্ত সমস্ত লোকের জন্য আপনার ফাইলটি গ্রিসস্পটে আপলোড করতে হবে এবং সেখান থেকে এটি ইনস্টল করতে হবে।

নতুন স্ক্রিপ্ট তৈরি করুন বিকল্পটি কার্যকর হবে না!


14
@ জর্জি, আপনি কি জানেন না যে ওয়েবসাইটটিতে একেবারেই কোনও যাদু নেই? আপনি .user.js ফাইল এক্সটেনশনের মাধ্যমে যে কোনও কিছুতে ব্রাউজ করতে পারেন এবং গ্রিসমোনকি আপনি এটি ইনস্টল করতে চান কিনা তা জিজ্ঞাসা করবে। এটিতে আপনার স্থানীয় কম্পিউটারের ফাইল অন্তর্ভুক্ত রয়েছে। যে কোনও স্ক্রিপ্ট ইনস্টল করা আপনার ব্রাউজারে টেনে আনার মতোই সহজ।
রব কেনেডি

5
দেখে মনে হচ্ছে এটি ইনস্টলেশনের পরে ফাইল সম্পাদনা করার সময়ও এটি ভালভাবে কাজ করে।
জোসেফ সাবল

6
জোসেফ ঠিক বলেছেন - সংস্করণ ০.৯.০ থেকে গ্রেইসমনকি ফাইল সম্পাদনা করার সাথে সাথেই এখন @ প্রয়োজনীয় ফাইলগুলি ইনস্টল করবেন।
ররি ও'কেনে

1
$(document).ready(function() {...});আপনার
ব্যবহারকারী

1
আপনাকে রিফ্রেশ করার সহজতম উপায় @requiresহ'ল @requireস্টেটমেন্টের শেষে একটি হ্যাশ বা ক্যোরিস্ট্রিং যুক্ত করা এবং যখনই এটি আপডেট করার প্রয়োজন হয় তখন এটিকে পরিবর্তন করুন। আপনি যেমন "ক্যাশেবাস্ট" ফ্যাভিকন পছন্দ করেন তেমনই একই। // @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js?v=changeme
এপাচি

উত্তর:


189

সম্ভবত আপনার কাছে গ্রিসমোনকির সাম্প্রতিক পর্যায়ে যথেষ্ট সংস্করণ নেই। এটি সংস্করণ 0.8 যা যুক্ত হয়েছিল @require

// @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js 

যদি আপনার কাছে 0.8 না থাকে, তবে পৃষ্ঠাটিতে ম্যানুয়ালি কোনও scriptউপাদান যোগ করার জন্য জোয়ান পাইড্রা বর্ণিত কৌশলটি ব্যবহার করুন ।

সংস্করণ 0.8 এবং 0.9 এর @requireমধ্যে কেবল তখনই প্রক্রিয়া করা হয় যখন স্ক্রিপ্টটি প্রথম ইনস্টল হয়। আপনি যদি প্রয়োজনীয় স্ক্রিপ্টগুলির তালিকা পরিবর্তন করেন তবে আপনাকে আপনার স্ক্রিপ্টটি আনইনস্টল করতে হবে এবং এটি পুনরায় ইনস্টল করতে হবে; গ্রিসমোনকি একবারে ইনস্টলেশন এ প্রয়োজনীয় স্ক্রিপ্ট ডাউনলোড করে এবং তারপরে একটি ক্যাশেড অনুলিপি ব্যবহার করে।

০.৯ হিসাবে গ্রিসমোনকি আচরণ বদলেছে ( একটি স্পর্শকাতরভাবে সম্পর্কিত সমস্যাটির সমাধান করার জন্য ) যাতে এটি এখন প্রতিটি সম্পাদনার পরে প্রয়োজনীয় স্ক্রিপ্টগুলি লোড করে; স্ক্রিপ্টটি পুনরায় ইনস্টল করা আর দরকার নেই।


রব, তাহলে আমার কী করা দরকার? আমি নতুন ব্যবহারকারী স্ক্রিপ্ট লিঙ্কটি ব্যবহার করে আমার ব্যবহারকারীর স্ক্রিপ্টগুলি তৈরি করছি। আমি @ অনুরোধটি যুক্ত করেছি এবং এটি কার্যকর হয়নি। তাহলে আমি কীভাবে এটি কাজ করতে পারি? দয়া করে ব্যাখ্যা করুন আমি @ প্রয়োজনীয় পদ্ধতিটি কাজ করতে চাই কারণ এটি স্ক্রিপ্ট উপাদান পদ্ধতির চেয়ে অনেক বেশি মার্জিত
কেইরা নিগলি

1
ঠিক আছে তাই আমি এটি কাজ করে। ধন্যবাদ !!! আমি গ্রীসস্পটে স্ক্রিপ্টটি আপলোড করেছি এবং সেখান থেকে এটি ইনস্টল করেছি।
কেইরা নিকটবর্তী

2
আমি কল্পনা করি যে আপনি যখন গ্রিসমোনকির মধ্যে থেকে একটি নতুন স্ক্রিপ্ট তৈরি করেন, স্ক্রিপ্টটি তত্ক্ষণাত ইনস্টল হয়ে যায়। এই স্ক্রিপ্টটি ডিফল্ট খালি ফাইল, যার অর্থ আপনি কোনও বাহ্যিক স্ক্রিপ্টের প্রয়োজনের সুযোগটি হাতছাড়া করেছেন।
রব কেনেডি

সুতরাং আপনার তৈরি করা নতুন স্ক্রিপ্টে @ অনুরোধ ব্যবহার করার কোনও উপায় নেই? : /
কোয়ানো

4
এটি বেশ সহজ, @ কুয়ানো। একটি নতুন .user.js ফাইল তৈরি করুন, এতে আপনার স্ক্রিপ্টটি লিখুন এবং তারপরে এটি ইনস্টল করতে আপনার ব্রাউজারে টেনে আনুন। যদি আপনি বহিরাগত স্ক্রিপ্ট প্রয়োজন উপর সীমাবদ্ধতা শুধুমাত্র উপস্থিত তৈরি গ্রিজমাঙ্কি এর UI 'তে মধ্যে থেকে স্ক্রিপ্ট, কিন্তু কোন প্রয়োজন যে আপনার স্ক্রিপ্ট ফাইল তৈরি করতে গ্রিজমাঙ্কি ব্যবহার করা আবশ্যক নয়। স্ক্রিপ্টটি ইনস্টল হওয়ার পরে আপনি এটি সম্পাদনা করতে পারবেন তবে আপনি যদি নতুন @requireনির্দেশিকা যুক্ত করতে চান তবে কার্যকর হওয়ার জন্য আপনাকে স্ক্রিপ্টটি আনইনস্টল এবং পুনরায় ইনস্টল করতে হবে।
রব কেনেডি

81

আপনি যদি এমন কোনও সাইটে jQuery ব্যবহার করতে চান যেখানে এটি ইতিমধ্যে অন্তর্ভুক্ত রয়েছে, তবে এটি যাওয়ার উপায় (ব্রুনোএলএম দ্বারা অনুপ্রাণিত):

var $ = unsafeWindow.jQuery;

আমি জানি এটি প্রশ্নের মূল উদ্দেশ্য ছিল না, তবে এটি ক্রমবর্ধমান একটি সাধারণ কেস হয়ে উঠছে এবং আপনি এই মামলাটি স্পষ্টভাবে বাদ দেননি। ;)


4
দৃশ্যত ক্রোমে সমর্থিত নয় - ক্রোমিয়াম.আর.
অ্যাশলে

স্ক্রিপ্টিশ ফায়ারফক্সে কাজ করে!
Gqqnbig

2
আপনার কাছে এটি ইতিমধ্যে এমনটি নেই তা পরীক্ষা করতে চাইবে: if(typeof $ == 'undefined'){ var $ = unsafeWindow.jQuery; } ক্রোমে, জেকারি একটি সাইট ইতিমধ্যে উপলব্ধ থাকবে।
জনাথন

হুম। এটি ব্যবহার করার সময় আমি সত্যিই অদ্ভুত ত্রুটি পাচ্ছি। এটি alert($('.submit_entry').length);উভয়ই ত্রুটিযুক্ত হওয়া এবং একই সাথে যথাযথ সতর্কতা প্রেরণ করা।
জনাথন

21

আপনার গ্রিসমোনকি স্ক্রিপ্টের মধ্যে jQuery এর সম্পূর্ণতা অন্তর্ভুক্ত করার সাথে একেবারেই কোনও ভুল নেই। কেবল উত্সটি গ্রহণ করুন এবং আপনার ব্যবহারকারী স্ক্রিপ্টের শীর্ষে রাখুন। আপনি ইতিমধ্যে জাভাস্ক্রিপ্ট চালাচ্ছেন যেহেতু স্ক্রিপ্ট ট্যাগ করার দরকার নেই!

ব্যবহারকারী কেবল একবারে স্ক্রিপ্টটি ডাউনলোড করে, তাই স্ক্রিপ্টের আকারটি বড় উদ্বেগ নয়। এছাড়াও, যদি আপনি কখনও আপনার গ্রিসমোনকি স্ক্রিপ্টটি নন-জিএম পরিবেশে কাজ করতে চান (যেমন অপেরার জিএম-এস্কু ব্যবহারকারী স্ক্রিপ্টস, বা সাফারিতে গ্রিসাকিট), এটি জিএম-অনন্য কন্সট্রাক্টগুলি যেমন @ পুনরায় ব্যবহার না করতে সহায়তা করবে।


7

রব এর সমাধানটি সঠিক @require

আমার মনে হয় যেটি যুক্তিযুক্ত তা আপনি হ'ল আপনি যখন এজেএক্স পদ্ধতি বাদে আপনার স্ক্রিপ্টে একবার অন্তর্ভুক্ত করেছেন তখন আপনি সাধারণত jQuery ব্যবহার করতে পারেন । ডিফল্টভাবে jQuery XMLHttpRequest সন্ধান করে, যা গ্রিসমোনকি প্রসঙ্গে নেই। আমি এমন একটি কাজের কথা লিখেছিলাম যেখানে আপনি GM_xMLhttpRequest (এক্সএইচআরের গ্রেসমনকি সংস্করণ) এর জন্য একটি মোড়ক তৈরি করেন এবং ajaxSetup()আপনার মোড়ানো সংস্করণটিকে ডিফল্ট হিসাবে নির্দিষ্ট করতে jQuery ব্যবহার করেন। একবার আপনি এটি করার পরে, আপনি $.getএবং $.postযথারীতি ব্যবহার করতে পারেন ।

JQuery এর সাথে $.getJSONআপনারও সমস্যা হতে পারে কারণ এটি <script>ট্যাগ ব্যবহার করে জেএসএনপি লোড করে । এটি ত্রুটির দিকে পরিচালিত করে কারণ জিকিউয়ারি গ্রিসমোনকি উইন্ডোটির স্কোপগুলিতে কলব্যাক ফাংশনটি সংজ্ঞায়িত করে এবং লোড হওয়া স্ক্রিপ্টগুলি মূল উইন্ডোটির স্কোপগুলিতে কলব্যাকের সন্ধান করে। $.getপরিবর্তে ব্যবহার করা এবং ফলাফলটি পার্স করা আপনার সেরা বাজি JSON.parse()


4

আপনি গ্রিসমোনকিতে নতুন ব্যবহারকারীর স্ক্রিপ্ট ব্যবহার করে একটি নতুন স্ক্রিপ্ট তৈরি করতে পারেন তবে আপনাকে জিএম_স্ক্রিপ্টস ফোল্ডারের ভিতরে কনফিগার.এক্সএমএল ফাইলটি সম্পাদনা করতে হবে।

আপনার কনফিগারেশন.এমএমএল ফাইলের মতো একই সিনট্যাক্স থাকা উচিত:

<Script filename="jquery_test.user.js" name="jQuery Test" namespace="http://www.example.com/jQueryPlay/" description="Just a test" enabled="true" basedir="jquery_test">
        <Include>http://*</Include>
        <Require filename="jquery.js"/>
</Script>

<Require>ট্যাগ লক্ষ্য করুন ।

আপনার স্ক্রিপ্টে আপনি সরাসরি jQuery সিনট্যাক্স ব্যবহার করতে পারেন। গ্রিসমোনকি শিরোনামে আপনার প্রয়োজনীয় ট্যাগ রয়েছে তা নিশ্চিত করুন। হ্যালো ওয়ার্ল্ডের উদাহরণ এখানে:

// ==UserScript==
// @name           Test jQuery
// @namespace      http://www.example.com/jQueryPlay/
// @description    Just a test
// @include        http://*
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js
// ==/UserScript==

$(document).ready(function() {  
        alert("Hello world!");
});

মনে রাখবেন কনফিগারেশন.এক্সএমএল সংশোধন করার পরে আপনাকে সেটিংস পুনরায় লোড করার জন্য গ্রিসমোনকির জন্য আপনার ব্রাউজারটি পুনরায় চালু করতে হবে।

আরও মনে রাখবেন যে এটি কাজ করার জন্য আপনাকে jquery.js ফাইলটি আপনার স্ক্রিপ্ট ডিরেক্টরি ফোল্ডারে অনুলিপি করতে হবে। আমি এটি পরীক্ষা করেছি এবং এটি কেবল তখনই কাজ করে যদি আপনি প্রকৃতপক্ষে সেখানে ফাইলটি অনুলিপি করেন।

শুভ জিকিউরিয়িং!


4

আপডেট : নীচের মন্তব্যটি যেমন বলেছে, এই উত্তরটি অপ্রচলিত।

অন্য প্রত্যেকে যেমন বলেছে, @ স্ক্রিপ্টটি ইনস্টল হওয়ার পরে কেবলমাত্র অনুরোধটি চালানো হবে। যাইহোক, আপনার পাশাপাশি নোট করা উচিত যে বর্তমানে jQuery 1.4। * গ্রিসমোনকি দিয়ে কাজ করে না। আপনি এখানে বিস্তারিত জানার জন্য দেখতে পারেন: http://forum.jquery.com/topic/importing-jquery-1-4-1-into-greasemonkey-scripts-generates-an-error

জিনিস পরিবর্তন না হওয়া পর্যন্ত আপনাকে jQuery 1.3.2 ব্যবহার করতে হবে।


3
এই উত্তরটি জিএম সংস্করণ 0.9 বা তার পরে অপ্রচলিত।
ব্রুক অ্যাডামস

3
@ ব্রোক: কেন? আপনি আমাদের noobs জন্য ব্যাখ্যা করতে পারেন?
ট্রেভর সুলিভান

4

আপনি যদি ক্রোম ব্যবহার করছেন তবে আপনাকে বিকল্প হিসাবে বেছে নিতে হবে কারণ ক্রোমিয়াম সমর্থন করে না @require

উত্স: ক্রোমিয়াম প্রকল্প - ব্যবহারকারীর স্ক্রিপ্ট

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


2

আপনি যখন jQuery ব্যবহার করে কোনও ওয়েবপৃষ্ঠায় ইভেন্টগুলিকে আনবাইন্ড করতে চান তখন @ রিকোয়ার মেটা কাজ করে না, আপনাকে ওয়েবপৃষ্ঠায় অন্তর্ভুক্ত একটি jQuery লাইব্রেরি ব্যবহার করতে হবে এবং তারপরে গ্রীসমনকিতে গ্রিসমোনকিতে জিকিউরি var $ = unsafeWindow.jQuery; ইভেন্ট হ্যান্ডলারদের কীভাবে বন্ধ করব?


1

আপনি Component unavailableসরাসরি jQuery স্ক্রিপ্ট আমদানি করলে আপনি পেতে পারেন।

@ কনলি যে বিষয়টির কথা বলছিলেন তা হতে পারে ...

তুমি ব্যবহার করতে পার

@require        http://userscripts.org/scripts/source/85365.user.js

গ্রিসমোনকিতে কাজ করার জন্য এটি একটি পরিবর্তিত সংস্করণ এবং তারপরে jQuery অবজেক্টটি পান

var $ = unsafeWindow.jQuery;
$("div").css("display", "none");

আমি বুঝতে পারছি এটি 5 ইও, তবে কেবল অবাক হচ্ছেন: পৃষ্ঠাটিতে ইতিমধ্যে সংজ্ঞায়িত যেমন jQuery অবজেক্টটি পাওয়া কি ভুল নয়, এটিকে অনিরাপদWindow.jQuery হিসাবে উল্লেখ করে?
জেজে_

0

@requireস্ক্রিপ্টটি প্রথম ইনস্টল হওয়ার পরে কেবল প্রক্রিয়া করা হয় না ! আমার পর্যবেক্ষণে এটি প্রথম সম্পাদনের সময় সংগ্রহ করা হয়! সুতরাং আপনি ব্র্যান্ড-নতুন স্ক্রিপ্ট তৈরির জন্য গ্রিসমোনকির কমান্ডের মাধ্যমে একটি স্ক্রিপ্ট ইনস্টল করতে পারেন । আপনার কেবলমাত্র যত্ন নেওয়া উচিত তা হ'ল কোনও পৃষ্ঠা পুনরায় লোড ট্রিগারযুক্ত নেই, আপনি @requireঅংশটি যুক্ত করার জন্য । (এবং নতুন স্ক্রিপ্ট সংরক্ষণ করুন ...)

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