বর্ণনা
ইউজার স্ক্রিপ্টস কনটেক্সটে ইউজার স্ক্রিপ্ট এক্সিকিউট করতে userScripts API ব্যবহার করুন।
অনুমতি
userScripts ইউজার স্ক্রিপ্টস এপিআই ( chrome.userScripts ব্যবহার করতে, আপনার manifest.json ফাইলে "userScripts" পারমিশন এবং যে সাইটগুলিতে স্ক্রিপ্ট চালাতে চান সেগুলির জন্য "host_permissions" পারমিশন যোগ করুন।
{
"name": "User script test extension",
"manifest_version": 3,
"minimum_chrome_version": "120",
"permissions": [
"userScripts"
],
"host_permissions": [
"*://example.com/*"
]
}
প্রাপ্যতা
ধারণা এবং ব্যবহার
ইউজার স্ক্রিপ্ট হলো একটি কোডের অংশ যা কোনো ওয়েব পেজের চেহারা বা আচরণ পরিবর্তন করার জন্য তাতে যুক্ত করা হয়। কন্টেন্ট স্ক্রিপ্ট এবং chrome.scripting API-এর মতো অন্যান্য এক্সটেনশন ফিচারের থেকে ভিন্ন, ইউজার স্ক্রিপ্টস API আপনাকে যেকোনো কোড চালানোর সুযোগ দেয়। যেসব এক্সটেনশন ব্যবহারকারীর দেওয়া স্ক্রিপ্ট চালায় এবং যা আপনার এক্সটেনশন প্যাকেজের অংশ হিসেবে অন্তর্ভুক্ত করা যায় না, তাদের জন্য এই API-টি প্রয়োজন।
userScripts API-এর ব্যবহার সক্ষম করুন
আপনার এক্সটেনশন userScripts API ব্যবহার করার অনুমতি পাওয়ার পর, ব্যবহারকারীদের অবশ্যই একটি নির্দিষ্ট টগল চালু করতে হবে যাতে আপনার এক্সটেনশনটি API ব্যবহার করতে পারে। প্রয়োজনীয় নির্দিষ্ট টগলটি এবং এটি নিষ্ক্রিয় থাকলে API-এর আচরণ ক্রোম সংস্করণ অনুযায়ী ভিন্ন হয়।
উদাহরণস্বরূপ, নতুন ব্যবহারকারীকে অন্তর্ভুক্ত করার সময়, ব্যবহারকারীকে কোন টগলটি চালু করতে হবে তা নির্ধারণ করতে নিম্নলিখিত যাচাইকরণটি ব্যবহার করুন:
let version = Number(navigator.userAgent.match(/(Chrome|Chromium)\/([0-9]+)/)?.[2]);
if (version >= 138) {
// Allow User Scripts toggle will be used.
} else {
// Developer mode toggle will be used.
}
নিম্নলিখিত বিভাগগুলিতে বিভিন্ন টগল এবং সেগুলি কীভাবে সক্রিয় করতে হয় তা বর্ণনা করা হয়েছে।
ক্রোম সংস্করণ ১৩৮-এর পূর্ববর্তী সংস্করণ (ডেভেলপার মোড টগল)
একজন এক্সটেনশন ডেভেলপার হিসেবে, আপনার ক্রোম ইনস্টলেশনে ইতিমধ্যেই ডেভেলপার মোড চালু করা আছে। আপনার ব্যবহারকারীদেরও ডেভেলপার মোড চালু করতে হবে।
আপনি নিম্নলিখিত নির্দেশাবলী আপনার ব্যবহারকারীদের জন্য আপনার এক্সটেনশনের ডকুমেন্টেশনে কপি ও পেস্ট করতে পারেন।
- একটি নতুন ট্যাবে
chrome://extensionsলিখে এক্সটেনশন পেজে যান। (পরিকল্পনা অনুযায়ীchrome://ইউআরএল লিঙ্কযোগ্য নয়।) ডেভেলপার মোডের পাশে থাকা টগল সুইচটিতে ক্লিক করে ডেভেলপার মোড চালু করুন।

এক্সটেনশন পৃষ্ঠা (chrome://extensions)
ক্রোম সংস্করণ ১৩৮ এবং নতুন সংস্করণ (ব্যবহারকারী স্ক্রিপ্ট অনুমোদনের টগল)
‘ব্যবহারকারী স্ক্রিপ্ট ব্যবহারের অনুমতি দিন’ টগলটি প্রতিটি এক্সটেনশনের বিবরণ পৃষ্ঠায় থাকে (উদাহরণস্বরূপ, chrome://extensions/?id=YOUR_EXTENSION_ID)।
আপনি নিম্নলিখিত নির্দেশাবলী আপনার এক্সটেনশনের ডকুমেন্টেশনে ব্যবহারকারীদের জন্য কপি ও পেস্ট করতে পারেন:
- একটি নতুন ট্যাবে
chrome://extensionsলিখে এক্সটেনশন পেজে যান। (পরিকল্পনা অনুযায়ীchrome://ইউআরএল লিঙ্কযোগ্য নয়।) - এক্সটেনশনটির বিস্তারিত তথ্য দেখতে এক্সটেনশন কার্ডে থাকা 'Details' বাটনে ক্লিক করুন।
- Allow User Scripts-এর পাশের টগল সুইচটিতে ক্লিক করুন।

এপিআই উপলব্ধতা যাচাই করুন
userScripts API সক্রিয় আছে কিনা তা নির্ধারণ করতে আমরা নিম্নলিখিত চেকটি করার পরামর্শ দিই, কারণ এটি ক্রোমের সকল সংস্করণে কাজ করে। এই চেকটি একটি chrome.userScripts() মেথড কল করার চেষ্টা করে, যা API উপলব্ধ থাকলে সর্বদা সফল হওয়ার কথা। যদি এই কলটি কোনো এরর দেখায়, তাহলে API-টি উপলব্ধ নেই:
function isUserScriptsAvailable() {
try {
// Method call which throws if API permission or toggle is not enabled.
chrome.userScripts.getScripts();
return true;
} catch {
// Not available.
return false;
}
}
বিচ্ছিন্ন বিশ্বে কাজ করুন
ইউজার এবং কন্টেন্ট স্ক্রিপ্ট উভয়ই একটি আইসোলেটেড ওয়ার্ল্ডে অথবা মেইন ওয়ার্ল্ডে চলতে পারে। একটি আইসোলেটেড ওয়ার্ল্ড হলো এমন একটি এক্সিকিউশন এনভায়রনমেন্ট যা কোনো হোস্ট পেজ বা অন্যান্য এক্সটেনশনের কাছে অ্যাক্সেসযোগ্য নয়। এটি একটি ইউজার স্ক্রিপ্টকে হোস্ট পেজ বা অন্যান্য এক্সটেনশনের ইউজার এবং কন্টেন্ট স্ক্রিপ্টকে প্রভাবিত না করেই তার জাভাস্ক্রিপ্ট এনভায়রনমেন্ট পরিবর্তন করার সুযোগ দেয়। বিপরীতভাবে, ইউজার স্ক্রিপ্ট (এবং কন্টেন্ট স্ক্রিপ্ট) হোস্ট পেজ বা অন্যান্য এক্সটেনশনের ইউজার এবং কন্টেন্ট স্ক্রিপ্টের কাছে দৃশ্যমান থাকে না। মেইন ওয়ার্ল্ডে চলমান স্ক্রিপ্টগুলো হোস্ট পেজ এবং অন্যান্য এক্সটেনশনের কাছে অ্যাক্সেসযোগ্য এবং দৃশ্যমান থাকে। ওয়ার্ল্ড নির্বাচন করার জন্য, userScripts.register() কল করার সময় "USER_SCRIPT" বা "MAIN" পাস করুন।
USER_SCRIPT ওয়ার্ল্ডের জন্য একটি কন্টেন্ট নিরাপত্তা নীতি কনফিগার করতে, userScripts.configureWorld() কল করুন:
chrome.userScripts.configureWorld({
csp: "script-src 'self'"
});
বার্তা আদানপ্রদান
কন্টেন্ট স্ক্রিপ্ট এবং অফস্ক্রিন ডকুমেন্টের মতোই, ইউজার স্ক্রিপ্টগুলো মেসেজিং ব্যবহার করে একটি এক্সটেনশনের অন্যান্য অংশের সাথে যোগাযোগ করে (অর্থাৎ, এক্সটেনশনের অন্য যেকোনো অংশের মতোই তারা runtime.sendMessage() এবং runtime.connect() কল করতে পারে)। তবে, এগুলো ডেডিকেটেড ইভেন্ট হ্যান্ডলার ব্যবহার করে গ্রহণ করা হয় (অর্থাৎ, এগুলো onMessage বা onConnect ব্যবহার করে না)। এই হ্যান্ডলারগুলোকে runtime.onUserScriptMessage এবং runtime.onUserScriptConnect বলা হয়। ডেডিকেটেড হ্যান্ডলারগুলো ইউজার স্ক্রিপ্ট থেকে আসা মেসেজ শনাক্ত করা সহজ করে তোলে, কারণ ইউজার স্ক্রিপ্ট একটি কম-বিশ্বস্ত কনটেক্সট।
বার্তা পাঠানোর আগে, আপনাকে অবশ্যই messaging আর্গুমেন্টটি ` true সেট করে configureWorld() ফাংশনটি কল করতে হবে। মনে রাখবেন যে csp এবং messaging উভয় আর্গুমেন্ট একই সাথে পাস করা যেতে পারে।
chrome.userScripts.configureWorld({
messaging: true
});
এক্সটেনশন আপডেট
কোনো এক্সটেনশন আপডেট হলে ইউজার স্ক্রিপ্টগুলো মুছে যায়। এক্সটেনশন সার্ভিস ওয়ার্কারের runtime.onInstalled ইভেন্ট হ্যান্ডলারে কোড রান করে আপনি সেগুলো আবার যোগ করতে পারেন। ইভেন্ট কলব্যাকে পাঠানো শুধুমাত্র "update" কারণটিতেই সাড়া দিন।
উদাহরণ
এই উদাহরণটি আমাদের স্যাম্পল রিপোজিটরিতে থাকা userScript স্যাম্পল থেকে নেওয়া হয়েছে।
একটি স্ক্রিপ্ট নিবন্ধন করুন
নিম্নলিখিত উদাহরণটি register() একটি সাধারণ কল দেখায়। প্রথম আর্গুমেন্টটি হলো অবজেক্টের একটি অ্যারে, যা রেজিস্টার করার জন্য স্ক্রিপ্টগুলোকে সংজ্ঞায়িত করে। এখানে যা দেখানো হয়েছে তার চেয়েও বেশি অপশন রয়েছে।
chrome.userScripts.register([{
id: 'test',
matches: ['*://*/*'],
js: [{code: 'alert("Hi!")'}]
}]);
প্রকারভেদ
ExecutionWorld
ব্যবহারকারী স্ক্রিপ্ট কার্যকর করার জন্য জাভাস্ক্রিপ্ট জগৎ।
এনাম
"প্রধান" "ব্যবহারকারীর স্ক্রিপ্ট"
DOM-এর এক্সিকিউশন এনভায়রনমেন্ট নির্দিষ্ট করে, যা হোস্ট পেজের জাভাস্ক্রিপ্টের সাথে শেয়ার করা হয়।
ব্যবহারকারী স্ক্রিপ্টের জন্য নির্দিষ্ট এক্সিকিউশন এনভায়রনমেন্টকে সুনির্দিষ্ট করে, যা পেজের CSP-এর আওতামুক্ত।
InjectionResult
বৈশিষ্ট্য
- ডকুমেন্ট আইডি
স্ট্রিং
ইনজেকশনটির সাথে সম্পর্কিত নথি।
- ত্রুটি
স্ট্রিং ঐচ্ছিক
ত্রুটি, যদি থাকে।
errorএবংresultপরস্পর স্বতন্ত্র। - ফ্রেমআইডি
সংখ্যা
ইনজেকশনের সাথে সংশ্লিষ্ট ফ্রেমটি।
- ফলাফল
যেকোনো ঐচ্ছিক
স্ক্রিপ্ট নির্বাহের ফলাফল।
InjectionTarget
বৈশিষ্ট্য
- সমস্ত ফ্রেম
বুলিয়ান ঐচ্ছিক
স্ক্রিপ্টটি ট্যাবের অন্তর্ভুক্ত সমস্ত ফ্রেমে ইনজেক্ট করা হবে কিনা। এর ডিফল্ট মান হলো false। যদি
frameIdsনির্দিষ্ট করা থাকে, তবে এটি অবশ্যই true হবে না। - ডকুমেন্ট আইডি
স্ট্রিং[] ঐচ্ছিক
ইনজেক্ট করার জন্য নির্দিষ্ট documentId-গুলোর আইডি।
frameIdsসেট করা থাকলে এটি সেট করা যাবে না। - ফ্রেমআইডি
সংখ্যা[] ঐচ্ছিক
ইনজেক্ট করার জন্য নির্দিষ্ট ফ্রেমগুলোর আইডি।
- ট্যাবআইডি
সংখ্যা
যে ট্যাবে ইনজেক্ট করতে হবে তার আইডি।
RegisteredUserScript
বৈশিষ্ট্য
- সমস্ত ফ্রেম
বুলিয়ান ঐচ্ছিক
যদি 'true' হয়, তবে এটি সমস্ত ফ্রেমে ইনজেক্ট করবে, এমনকি যদি ফ্রেমটি ট্যাবের সবচেয়ে উপরের ফ্রেম নাও হয়। URL-এর শর্ত পূরণের জন্য প্রতিটি ফ্রেম আলাদাভাবে পরীক্ষা করা হয়; URL-এর শর্ত পূরণ না হলে এটি চাইল্ড ফ্রেমে ইনজেক্ট করবে না। ডিফল্ট মান 'false', যার অর্থ শুধুমাত্র সবচেয়ে উপরের ফ্রেমটিই মেলানো হবে।
- গ্লোব বাদ দিন
স্ট্রিং[] ঐচ্ছিক
যেসব পেজে এই ইউজার স্ক্রিপ্টটি ইনজেক্ট করা হবে না, সেগুলোর জন্য ওয়াইল্ডকার্ড প্যাটার্ন নির্দিষ্ট করে।
- ম্যাচগুলি বাদ দিন
স্ট্রিং[] ঐচ্ছিক
যেসব পৃষ্ঠায় অন্যথায় এই ব্যবহারকারী স্ক্রিপ্টটি প্রবেশ করানো হতো, সেগুলোকে বাদ দেওয়া হয়েছে। এই স্ট্রিংগুলির সিনট্যাক্স সম্পর্কে আরও বিস্তারিত জানতে ম্যাচ প্যাটার্নস দেখুন।
- আইডি
স্ট্রিং
এপিআই কলে নির্দিষ্ট করা ইউজার স্ক্রিপ্টের আইডি। এই প্রপার্টিটি অবশ্যই '_' দিয়ে শুরু হবে না, কারণ এটি জেনারেটেড স্ক্রিপ্ট আইডির প্রিফিক্স হিসেবে সংরক্ষিত।
- গ্লোব অন্তর্ভুক্ত করুন
স্ট্রিং[] ঐচ্ছিক
যেসব পেজে এই ইউজার স্ক্রিপ্টটি ইনজেক্ট করা হবে, সেগুলোর জন্য ওয়াইল্ডকার্ড প্যাটার্ন নির্দিষ্ট করে।
- js
স্ক্রিপ্টসোর্স [] ঐচ্ছিক
সংশ্লিষ্ট পৃষ্ঠাগুলিতে ইনজেক্ট করার জন্য স্ক্রিপ্টের উৎস নির্ধারণকারী ScriptSource অবজেক্টগুলির তালিকা। ${ref:register}-এর জন্য এই প্রপার্টিটি অবশ্যই নির্দিষ্ট করতে হবে, এবং নির্দিষ্ট করা হলে এটি অবশ্যই একটি অ-খালি অ্যারে হতে হবে।
- ম্যাচ
স্ট্রিং[] ঐচ্ছিক
এই ইউজার স্ক্রিপ্টটি কোন কোন পেজে ইনজেক্ট করা হবে তা নির্দিষ্ট করে। এই স্ট্রিংগুলির সিনট্যাক্স সম্পর্কে আরও বিস্তারিত জানতে ম্যাচ প্যাটার্নস (Match Patterns) দেখুন। ${ref:register} এর জন্য এই প্রপার্টিটি অবশ্যই নির্দিষ্ট করতে হবে।
- রানঅ্যাট
রানঅ্যাট ঐচ্ছিক
ওয়েব পেজে কখন জাভাস্ক্রিপ্ট ফাইল যুক্ত করা হবে তা নির্দিষ্ট করে। এর পছন্দের এবং ডিফল্ট মান হলো
document_idle। - বিশ্ব
এক্সিকিউশনওয়ার্ল্ড ঐচ্ছিক
স্ক্রিপ্টটি চালানোর জন্য জাভাস্ক্রিপ্ট এক্সিকিউশন এনভায়রনমেন্ট। ডিফল্ট হলো
`USER_SCRIPT`। - বিশ্ব পরিচয়
স্ট্রিং ঐচ্ছিক
ক্রোম ১৩৩+যে ইউজার স্ক্রিপ্ট ওয়ার্ল্ডে এটি চালানো হবে, তা নির্দিষ্ট করে। এটি বাদ দিলে, স্ক্রিপ্টটি ডিফল্ট ইউজার স্ক্রিপ্ট ওয়ার্ল্ডে চলবে। শুধুমাত্র তখনই বৈধ যখন
worldবাদ দেওয়া হয় অথবাUSER_SCRIPTহয়। যে মানগুলির শুরুতে আন্ডারস্কোর (_) থাকে, সেগুলি সংরক্ষিত।
ScriptSource
বৈশিষ্ট্য
- কোড
স্ট্রিং ঐচ্ছিক
ইনজেক্ট করার জন্য জাভাস্ক্রিপ্ট কোড ধারণকারী একটি স্ট্রিং।
fileঅথবাcodeএই দুটির মধ্যে ঠিক একটি অবশ্যই উল্লেখ করতে হবে। - ফাইল
স্ট্রিং ঐচ্ছিক
এক্সটেনশনের রুট ডিরেক্টরির সাপেক্ষে ইনজেক্ট করার জন্য জাভাস্ক্রিপ্ট ফাইলের পাথ।
fileঅথবাcodeএই দুটির মধ্যে ঠিক একটি অবশ্যই উল্লেখ করতে হবে।
UserScriptFilter
বৈশিষ্ট্য
- আইডি
স্ট্রিং[] ঐচ্ছিক
getScriptsশুধুমাত্র এই তালিকায় নির্দিষ্ট করা আইডিযুক্ত স্ক্রিপ্টগুলোই ফেরত দেয়।
UserScriptInjection
বৈশিষ্ট্য
- অবিলম্বে ইনজেকশন দিন
বুলিয়ান ঐচ্ছিক
ইনজেকশনটি টার্গেটে যত তাড়াতাড়ি সম্ভব ট্রিগার করা উচিত কিনা। মনে রাখবেন, এটি পেজ লোড হওয়ার আগে ইনজেকশন ঘটবে এমন কোনো নিশ্চয়তা দেয় না, কারণ স্ক্রিপ্টটি টার্গেটে পৌঁছানোর আগেই পেজটি লোড হয়ে যেতে পারে।
- js
টার্গেটে ইনজেক্ট করার জন্য স্ক্রিপ্টগুলোর উৎস নির্ধারণকারী ScriptSource অবজেক্টগুলোর তালিকা।
- লক্ষ্য
যে টার্গেটে স্ক্রিপ্টটি ইনজেক্ট করতে হবে, তার বিবরণ।
- বিশ্ব
এক্সিকিউশনওয়ার্ল্ড ঐচ্ছিক
স্ক্রিপ্টটি চালানোর জন্য জাভাস্ক্রিপ্ট 'ওয়ার্ল্ড'। ডিফল্ট হলো
USER_SCRIPT। - বিশ্ব পরিচয়
স্ট্রিং ঐচ্ছিক
যে ইউজার স্ক্রিপ্ট ওয়ার্ল্ডে এটি চালানো হবে, তা নির্দিষ্ট করে। এটি বাদ দিলে, স্ক্রিপ্টটি ডিফল্ট ইউজার স্ক্রিপ্ট ওয়ার্ল্ডে চলবে। শুধুমাত্র তখনই বৈধ যখন
worldবাদ দেওয়া হয় অথবাUSER_SCRIPTহয়। যে মানগুলির শুরুতে আন্ডারস্কোর (_) থাকে, সেগুলি সংরক্ষিত।
WorldProperties
বৈশিষ্ট্য
- সিএসপি
স্ট্রিং ঐচ্ছিক
ওয়ার্ল্ড সিএসপি নির্দিষ্ট করে। ডিফল্ট হলো
`ISOLATED`ওয়ার্ল্ড সিএসপি। - বার্তা আদানপ্রদান
বুলিয়ান ঐচ্ছিক
মেসেজিং এপিআইগুলো উন্মুক্ত করা হবে কিনা তা নির্দিষ্ট করে। ডিফল্ট মান হলো
false। - বিশ্ব পরিচয়
স্ট্রিং ঐচ্ছিক
ক্রোম ১৩৩+আপডেট করার জন্য নির্দিষ্ট ইউজার স্ক্রিপ্ট ওয়ার্ল্ডের আইডি উল্লেখ করে। যদি তা প্রদান করা না হয়, তবে ডিফল্ট ইউজার স্ক্রিপ্ট ওয়ার্ল্ডের প্রোপার্টিগুলো আপডেট হয়। যে সকল মানের শুরুতে আন্ডারস্কোর (
_) থাকে, সেগুলো সংরক্ষিত।
পদ্ধতি
configureWorld()
chrome.userScripts.configureWorld(
properties: WorldProperties,
): Promise<void>
`USER_SCRIPT` এক্সিকিউশন এনভায়রনমেন্ট কনফিগার করে।
প্যারামিটার
- বৈশিষ্ট্য
ব্যবহারকারী স্ক্রিপ্ট ওয়ার্ল্ড কনফিগারেশন ধারণ করে।
ফেরত
প্রতিশ্রুতি<শূন্য>
এমন একটি প্রতিশ্রুতি যা ওয়ার্ল্ডটি কনফিগার করা হয়ে গেলে কার্যকর হয়।
execute()
chrome.userScripts.execute(
injection: UserScriptInjection,
): Promise<InjectionResult[]>
একটি টার্গেট কনটেক্সটে একটি স্ক্রিপ্ট ইনজেক্ট করে। ডিফল্টরূপে, স্ক্রিপ্টটি document_idle এ রান হবে, অথবা পেজটি ইতিমধ্যে লোড হয়ে গেলে সাথে সাথেই রান হবে। যদি ` injectImmediately প্রপার্টিটি সেট করা থাকে, তাহলে স্ক্রিপ্টটি অপেক্ষা না করেই ইনজেক্ট হবে, এমনকি পেজটি লোড হওয়া শেষ না হলেও। যদি স্ক্রিপ্টটি একটি প্রমিজে ইভ্যালুয়েট হয়, তাহলে ব্রাউজার প্রমিজটি সেটেল হওয়া পর্যন্ত অপেক্ষা করবে এবং প্রাপ্ত ভ্যালুটি রিটার্ন করবে।
প্যারামিটার
- ইনজেকশন
ফেরত
প্রতিশ্রুতি< ইনজেকশনফলাফল []>
getScripts()
chrome.userScripts.getScripts(
filter?: UserScriptFilter,
): Promise<RegisteredUserScript[]>
এই এক্সটেনশনের জন্য গতিশীলভাবে নিবন্ধিত সমস্ত ব্যবহারকারী স্ক্রিপ্ট ফেরত দেয়।
প্যারামিটার
- ফিল্টার
নির্দিষ্ট করা থাকলে, এই মেথডটি শুধুমাত্র সেই ইউজার স্ক্রিপ্টগুলো রিটার্ন করে যেগুলো এর সাথে মেলে।
ফেরত
প্রতিশ্রুতি< নিবন্ধিত ব্যবহারকারী স্ক্রিপ্ট []>
এই প্রমিসটি নিবন্ধিত স্ক্রিপ্টগুলোর সাথে রিজলভ হয়। কোনো ত্রুটি ঘটলে প্রমিসটি রিজেক্ট হয়ে যাবে।
getWorldConfigurations()
chrome.userScripts.getWorldConfigurations(): Promise<WorldProperties[]>
সকল নিবন্ধিত বিশ্ব কনফিগারেশন পুনরুদ্ধার করে।
ফেরত
প্রতিশ্রুতি< বিশ্ব সম্পত্তি []>
যে প্রতিশ্রুতিটি নিবন্ধিত বিশ্ব কনফিগারেশনগুলির সাথে সমাধান হয়।
register()
chrome.userScripts.register(
scripts: RegisteredUserScript[],
): Promise<void>
এই এক্সটেনশনের জন্য এক বা একাধিক ব্যবহারকারী স্ক্রিপ্ট নিবন্ধন করে।
প্যারামিটার
- স্ক্রিপ্ট
নিবন্ধনের জন্য ব্যবহারকারী স্ক্রিপ্টগুলির একটি তালিকা রয়েছে।
ফেরত
প্রতিশ্রুতি<শূন্য>
স্ক্রিপ্টগুলো সম্পূর্ণভাবে নিবন্ধিত হয়ে গেলে এই প্রমিসটি রিজলভ হয়। কোনো ত্রুটি ঘটলে প্রমিসটি রিজেক্ট হবে।
resetWorldConfiguration()
chrome.userScripts.resetWorldConfiguration(
worldId?: string,
): Promise<void>
ব্যবহারকারীর স্ক্রিপ্ট ওয়ার্ল্ডের কনফিগারেশন রিসেট করে। নির্দিষ্ট আইডি সহ ওয়ার্ল্ডে ইনজেক্ট করা যেকোনো স্ক্রিপ্ট ডিফল্ট ওয়ার্ল্ড কনফিগারেশন ব্যবহার করবে।
প্যারামিটার
- বিশ্ব পরিচয়
স্ট্রিং ঐচ্ছিক
যে ইউজার স্ক্রিপ্ট ওয়ার্ল্ডটি রিসেট করতে হবে তার আইডি। এটি বাদ দিলে, ওয়ার্ল্ডের ডিফল্ট কনফিগারেশন রিসেট হয়ে যাবে।
ফেরত
প্রতিশ্রুতি<শূন্য>
এমন একটি প্রতিশ্রুতি যা কনফিগারেশন রিসেট করা হলে কার্যকর হয়।
unregister()
chrome.userScripts.unregister(
filter?: UserScriptFilter,
): Promise<void>
এই এক্সটেনশনের জন্য গতিশীলভাবে নিবন্ধিত সমস্ত ব্যবহারকারী স্ক্রিপ্ট অনিবন্ধিত করে।
প্যারামিটার
- ফিল্টার
নির্দিষ্ট করা থাকলে, এই পদ্ধতিটি শুধুমাত্র এর সাথে মিলে যাওয়া ব্যবহারকারী স্ক্রিপ্টগুলোকে অনিবন্ধিত করে।
ফেরত
প্রতিশ্রুতি<শূন্য>
স্ক্রিপ্টগুলো সম্পূর্ণরূপে অনিবন্ধিত হয়ে গেলে এই প্রমিসটি রিজলভ হয়। কোনো ত্রুটি ঘটলে প্রমিসটি রিজেক্ট হবে।
update()
chrome.userScripts.update(
scripts: RegisteredUserScript[],
): Promise<void>
এই এক্সটেনশনের জন্য এক বা একাধিক ব্যবহারকারী স্ক্রিপ্ট আপডেট করে।
প্যারামিটার
- স্ক্রিপ্ট
আপডেট করার জন্য ব্যবহারকারীর স্ক্রিপ্টগুলির একটি তালিকা এতে রয়েছে। কোনো বিদ্যমান স্ক্রিপ্টের প্রপার্টি শুধুমাত্র তখনই আপডেট করা হয়, যদি তা এই অবজেক্টে নির্দিষ্ট করা থাকে। স্ক্রিপ্ট পার্সিং/ফাইল যাচাইকরণের সময় কোনো ত্রুটি হলে, অথবা নির্দিষ্ট করা আইডিগুলো যদি কোনো সম্পূর্ণরূপে নিবন্ধিত স্ক্রিপ্টের সাথে না মেলে, তাহলে কোনো স্ক্রিপ্টই আপডেট করা হয় না।
ফেরত
প্রতিশ্রুতি<শূন্য>
স্ক্রিপ্টগুলো সম্পূর্ণরূপে আপডেট হয়ে গেলে এই প্রমিসটি রিজলভ হয়। কোনো ত্রুটি ঘটলে প্রমিসটি রিজেক্ট হবে।