বর্ণনা
বিভিন্ন প্রেক্ষাপটে স্ক্রিপ্ট কার্যকর করতে chrome.scripting API ব্যবহার করুন।
অনুমতি
scriptingপ্রাপ্যতা
প্রকাশ
browser.scripting API ব্যবহার করতে, ম্যানিফেস্টে "scripting" পারমিশন এবং যে পেজগুলোতে স্ক্রিপ্ট ইনজেক্ট করতে চান সেগুলোর জন্য হোস্ট পারমিশন ঘোষণা করুন। "host_permissions" কী অথবা "activeTab" পারমিশন ব্যবহার করুন, যা অস্থায়ী হোস্ট পারমিশন প্রদান করে। নিচের উদাহরণটিতে activeTab পারমিশন ব্যবহার করা হয়েছে।
{
"name": "Scripting Extension",
"manifest_version": 3,
"permissions": ["scripting", "activeTab"],
...
}
ধারণা এবং ব্যবহার
আপনি ওয়েবসাইটে জাভাস্ক্রিপ্ট এবং সিএসএস যুক্ত করতে browser.scripting API ব্যবহার করতে পারেন। এটি কন্টেন্ট স্ক্রিপ্ট দিয়ে যা করা যায় তার অনুরূপ। কিন্তু browser.scripting নেমস্পেস ব্যবহার করার ফলে, এক্সটেনশনগুলো রানটাইমে সিদ্ধান্ত নিতে পারে।
ইনজেকশন লক্ষ্যবস্তু
জাভাস্ক্রিপ্ট বা সিএসএস ইনজেক্ট করার জন্য কোনো টার্গেট নির্দিষ্ট করতে আপনি target প্যারামিটারটি ব্যবহার করতে পারেন।
একমাত্র আবশ্যক ফিল্ডটি হলো tabId । ডিফল্টরূপে, ইনজেকশনটি নির্দিষ্ট ট্যাবের মূল ফ্রেমে রান করবে।
function getTabId() { ... }
browser.scripting
.executeScript({
target : {tabId : getTabId()},
files : [ "script.js" ],
})
.then(() => console.log("script injected"));
নির্দিষ্ট ট্যাবের সমস্ত ফ্রেমে চালানোর জন্য, আপনি allFrames বুলিয়ানটিকে true সেট করতে পারেন।
function getTabId() { ... }
browser.scripting
.executeScript({
target : {tabId : getTabId(), allFrames : true},
files : [ "script.js" ],
})
.then(() => console.log("script injected in all frames"));
আপনি স্বতন্ত্র ফ্রেম আইডি উল্লেখ করে একটি ট্যাবের নির্দিষ্ট ফ্রেমেও ইনজেক্ট করতে পারেন। ফ্রেম আইডি সম্পর্কে আরও তথ্যের জন্য, browser.webNavigation API দেখুন।
function getTabId() { ... }
browser.scripting
.executeScript({
target : {tabId : getTabId(), frameIds : [ frameId1, frameId2 ]},
files : [ "script.js" ],
})
.then(() => console.log("script injected on target frames"));
ইনজেক্টেড কোড
এক্সটেনশনগুলো একটি বাহ্যিক ফাইল অথবা একটি রানটাইম ভেরিয়েবলের মাধ্যমে ইনজেক্ট করার জন্য কোড নির্দিষ্ট করে দিতে পারে।
ফাইল
ফাইলগুলোকে এক্সটেনশনের রুট ডিরেক্টরির সাপেক্ষে পাথ হিসেবে স্ট্রিং আকারে নির্দিষ্ট করা হয়। নিচের কোডটি script.js ফাইলটিকে ট্যাবের প্রধান ফ্রেমে ইনজেক্ট করবে।
function getTabId() { ... }
browser.scripting
.executeScript({
target : {tabId : getTabId()},
files : [ "script.js" ],
})
.then(() => console.log("injected script file"));
রানটাইম ফাংশন
scripting.executeScript() ব্যবহার করে জাভাস্ক্রিপ্ট ইনজেক্ট করার সময়, আপনি কোনো ফাইলের পরিবর্তে এক্সিকিউট করার জন্য একটি ফাংশন নির্দিষ্ট করে দিতে পারেন। এই ফাংশনটি বর্তমান এক্সটেনশন কনটেক্সটে উপলব্ধ একটি ফাংশন ভেরিয়েবল হওয়া উচিত।
function getTabId() { ... }
function getTitle() { return document.title; }
browser.scripting
.executeScript({
target : {tabId : getTabId()},
func : getTitle,
})
.then(() => console.log("injected a function"));
function getTabId() { ... }
function getUserColor() { ... }
function changeBackgroundColor() {
document.body.style.backgroundColor = getUserColor();
}
browser.scripting
.executeScript({
target : {tabId : getTabId()},
func : changeBackgroundColor,
})
.then(() => console.log("injected a function"));
আপনি args প্রপার্টি ব্যবহার করে এর সমাধান করতে পারেন:
function getTabId() { ... }
function getUserColor() { ... }
function changeBackgroundColor(backgroundColor) {
document.body.style.backgroundColor = backgroundColor;
}
browser.scripting
.executeScript({
target : {tabId : getTabId()},
func : changeBackgroundColor,
args : [ getUserColor() ],
})
.then(() => console.log("injected a function"));
রানটাইম স্ট্রিং
কোনো পৃষ্ঠার মধ্যে CSS যুক্ত করার ক্ষেত্রে, আপনি css প্রপার্টিতে ব্যবহারের জন্য একটি স্ট্রিংও নির্দিষ্ট করে দিতে পারেন। এই বিকল্পটি শুধুমাত্র scripting.insertCSS() -এর জন্য উপলব্ধ; আপনি scripting.executeScript() ব্যবহার করে কোনো স্ট্রিং এক্সিকিউট করতে পারবেন না।
function getTabId() { ... }
const css = "body { background-color: red; }";
browser.scripting
.insertCSS({
target : {tabId : getTabId()},
css : css,
})
.then(() => console.log("CSS injected"));
ফলাফলগুলো সামলান।
জাভাস্ক্রিপ্ট কার্যকর করার ফলাফল এক্সটেনশনে পাঠানো হয়। প্রতি ফ্রেমে একটিমাত্র ফলাফল অন্তর্ভুক্ত থাকে। মূল ফ্রেমটি ফলাফল অ্যারের প্রথম ইন্ডেক্সে থাকবে, এটি নিশ্চিত; অন্য সব ফ্রেম একটি অনির্দিষ্ট ক্রমে থাকে।
function getTabId() { ... }
function getTitle() { return document.title; }
browser.scripting
.executeScript({
target : {tabId : getTabId(), allFrames : true},
func : getTitle,
})
.then(injectionResults => {
for (const {frameId, result} of injectionResults) {
console.log(`Frame ${frameId} result:`, result);
}
});
scripting.insertCSS() কোনো ফলাফল ফেরত দেয় না।
প্রতিশ্রুতি
যদি স্ক্রিপ্টটি কার্যকর করার ফলে প্রাপ্ত মানটি একটি প্রমিজ হয়, তাহলে ক্রোম প্রমিজটি স্থির হওয়া পর্যন্ত অপেক্ষা করবে এবং প্রাপ্ত মানটি ফেরত দেবে।
function getTabId() { ... }
async function addIframe() {
const iframe = document.createElement("iframe");
const loadComplete =
new Promise(resolve => iframe.addEventListener("load", resolve));
iframe.src = "https://example.com";
document.body.appendChild(iframe);
await loadComplete;
return iframe.contentWindow.document.title;
}
browser.scripting
.executeScript({
target : {tabId : getTabId(), allFrames : true},
func : addIframe,
})
.then(injectionResults => {
for (const frameResult of injectionResults) {
const {frameId, result} = frameResult;
console.log(`Frame ${frameId} result:`, result);
}
});
উদাহরণ
সমস্ত ডাইনামিক কন্টেন্ট স্ক্রিপ্ট অনিবন্ধিত করুন
নিম্নলিখিত কোড অংশে এমন একটি ফাংশন রয়েছে যা এক্সটেনশনটি দ্বারা পূর্বে নিবন্ধিত সমস্ত ডায়নামিক কন্টেন্ট স্ক্রিপ্টকে অনিবন্ধিত করে।
async function unregisterAllDynamicContentScripts() {
try {
const scripts = await browser.scripting.getRegisteredContentScripts();
const scriptIds = scripts.map(script => script.id);
return browser.scripting.unregisterContentScripts({ ids: scriptIds });
} catch (error) {
const message = [
"An unexpected error occurred while",
"unregistering dynamic content scripts.",
].join(" ");
throw new Error(message, {cause : error});
}
}
browser.scripting API ব্যবহার করে দেখতে, Chrome এক্সটেনশন স্যাম্পল রিপোজিটরি থেকে স্ক্রিপ্টিং স্যাম্পলটি ইনস্টল করুন।
প্রকারভেদ
ContentScriptFilter
বৈশিষ্ট্য
- আইডি
স্ট্রিং[] ঐচ্ছিক
নির্দিষ্ট করা থাকলে,
getRegisteredContentScriptsশুধুমাত্র সেই স্ক্রিপ্টগুলোই ফেরত দেবে যাদের আইডি এই তালিকায় উল্লেখ করা আছে।
CSSInjection
বৈশিষ্ট্য
- সিএসএস
স্ট্রিং ঐচ্ছিক
ইনজেক্ট করার জন্য CSS ধারণকারী একটি স্ট্রিং।
filesএবংcssএর মধ্যে ঠিক যেকোনো একটি অবশ্যই উল্লেখ করতে হবে। - ফাইল
স্ট্রিং[] ঐচ্ছিক
ইনজেক্ট করার জন্য CSS ফাইলগুলোর পাথ, যা এক্সটেনশনের রুট ডিরেক্টরির সাপেক্ষে নির্ধারিত হবে।
filesএবংcssএর মধ্যে ঠিক যেকোনো একটি অবশ্যই উল্লেখ করতে হবে। - উৎপত্তি
স্টাইলঅরিজিন ঐচ্ছিক
ইনজেকশনের জন্য স্টাইলের উৎস। ডিফল্ট মান
'AUTHOR'। - লক্ষ্য
যে টার্গেটে CSS সন্নিবেশ করতে হবে, তার বিবরণ।
ExecutionWorld
একটি স্ক্রিপ্ট কার্যকর হওয়ার জন্য জাভাস্ক্রিপ্ট জগৎ।
এনাম
"বিচ্ছিন্ন" "প্রধান"
বিচ্ছিন্ন বিশ্বকে নির্দিষ্ট করে, যা এই এক্সটেনশনটির জন্য স্বতন্ত্র নির্বাহ পরিবেশ।
DOM-এর প্রধান জগৎকে নির্দিষ্ট করে, যা হোস্ট পেজের জাভাস্ক্রিপ্টের সাথে ভাগ করা নির্বাহ পরিবেশ।
InjectionResult
বৈশিষ্ট্য
- ডকুমেন্ট আইডি
স্ট্রিং
ক্রোম ১০৬+ইনজেকশনটির সাথে সম্পর্কিত নথি।
- ফ্রেমআইডি
সংখ্যা
ক্রোম ৯০+ইনজেকশনের সাথে সংশ্লিষ্ট ফ্রেমটি।
- ফলাফল
যেকোনো ঐচ্ছিক
স্ক্রিপ্ট নির্বাহের ফলাফল।
InjectionTarget
বৈশিষ্ট্য
- সমস্ত ফ্রেম
বুলিয়ান ঐচ্ছিক
স্ক্রিপ্টটি ট্যাবের অন্তর্ভুক্ত সমস্ত ফ্রেমে ইনজেক্ট করা হবে কিনা। এর ডিফল্ট মান হলো false। যদি
frameIdsনির্দিষ্ট করা থাকে, তবে এটি অবশ্যই true হবে না। - ডকুমেন্ট আইডি
স্ট্রিং[] ঐচ্ছিক
ক্রোম ১০৬+ইনজেক্ট করার জন্য নির্দিষ্ট documentId-গুলোর আইডি ।
frameIdsসেট করা থাকলে এটি সেট করা যাবে না। - ফ্রেমআইডি
সংখ্যা[] ঐচ্ছিক
ইনজেক্ট করার জন্য নির্দিষ্ট ফ্রেমগুলোর আইডি ।
- ট্যাবআইডি
সংখ্যা
যে ট্যাবে ইনজেক্ট করতে হবে তার আইডি।
RegisteredContentScript
বৈশিষ্ট্য
- সমস্ত ফ্রেম
বুলিয়ান ঐচ্ছিক
যদি 'true' নির্দিষ্ট করা হয়, তবে এটি সমস্ত ফ্রেমে ইনজেক্ট করবে, এমনকি যদি ফ্রেমটি ট্যাবের সবচেয়ে উপরের ফ্রেম নাও হয়। প্রতিটি ফ্রেমের URL-এর প্রয়োজনীয়তা আলাদাভাবে পরীক্ষা করা হয়; URL-এর প্রয়োজনীয়তা পূরণ না হলে এটি চাইল্ড ফ্রেমে ইনজেক্ট করবে না। এর ডিফল্ট মান 'false', যার অর্থ শুধুমাত্র সবচেয়ে উপরের ফ্রেমটিই মেলানো হবে।
- সিএসএস
স্ট্রিং[] ঐচ্ছিক
সংশ্লিষ্ট পেজগুলিতে ইনজেক্ট করার জন্য CSS ফাইলগুলির তালিকা। পেজের জন্য কোনো DOM তৈরি বা প্রদর্শন করার আগে, এই অ্যারেতে ফাইলগুলি যে ক্রমে রয়েছে, সেই ক্রমেই ইনজেক্ট করা হয়।
- ম্যাচগুলি বাদ দিন
স্ট্রিং[] ঐচ্ছিক
যেসব পৃষ্ঠায় অন্যথায় এই কন্টেন্ট স্ক্রিপ্টটি যুক্ত করা হতো, সেগুলোকে বাদ দেওয়া হয়েছে। এই স্ট্রিংগুলোর সিনট্যাক্স সম্পর্কে আরও বিস্তারিত জানতে ম্যাচ প্যাটার্নস দেখুন।
- আইডি
স্ট্রিং
এপিআই কলে নির্দিষ্ট করা কন্টেন্ট স্ক্রিপ্টের আইডি। এটি অবশ্যই '_' দিয়ে শুরু হবে না, কারণ এটি জেনারেট করা স্ক্রিপ্ট আইডির প্রিফিক্স হিসেবে সংরক্ষিত।
- js
স্ট্রিং[] ঐচ্ছিক
সংশ্লিষ্ট পৃষ্ঠাগুলিতে ইনজেক্ট করার জন্য জাভাস্ক্রিপ্ট ফাইলগুলির তালিকা। এই অ্যারেতে ফাইলগুলি যে ক্রমে রয়েছে, সেই ক্রমেই ইনজেক্ট করা হয়।
- ম্যাচঅরিজিনঅ্যাজফলব্যাক
বুলিয়ান ঐচ্ছিক
ক্রোম ১১৯+এটি নির্দেশ করে যে, যেসব ফ্রেমে URL-এ একটি অসমর্থিত স্কিম (যেমন: about:, data:, blob:, বা filesystem:) রয়েছে, সেখানে স্ক্রিপ্টটি ইনজেক্ট করা যাবে কি না। এইসব ক্ষেত্রে, স্ক্রিপ্টটি ইনজেক্ট করা হবে কি না তা নির্ধারণ করার জন্য URL-এর অরিজিন পরীক্ষা করা হয়। যদি অরিজিনটি
nullহয় (যেমনটি data: URL-এর ক্ষেত্রে হয়), তাহলে ব্যবহৃত অরিজিনটি হবে হয় সেই ফ্রেম যা বর্তমান ফ্রেমটি তৈরি করেছে অথবা সেই ফ্রেম যা এই ফ্রেমে নেভিগেশন শুরু করেছে। উল্লেখ্য যে, এটি প্যারেন্ট ফ্রেম নাও হতে পারে। - ম্যাচ
স্ট্রিং[] ঐচ্ছিক
এই কন্টেন্ট স্ক্রিপ্টটি কোন কোন পেজে যুক্ত করা হবে তা নির্দিষ্ট করে। এই স্ট্রিংগুলির সিনট্যাক্স সম্পর্কে আরও বিস্তারিত জানতে ম্যাচ প্যাটার্নস (Match Patterns) দেখুন।
registerContentScriptsএর জন্য এটি অবশ্যই নির্দিষ্ট করতে হবে। - সেশন জুড়ে টিকে থাকে
বুলিয়ান ঐচ্ছিক
এই কন্টেন্ট স্ক্রিপ্টটি ভবিষ্যতের সেশনগুলিতেও থাকবে কিনা তা নির্দিষ্ট করে। ডিফল্ট মান হলো 'true'।
- রানঅ্যাট
রানঅ্যাট ঐচ্ছিক
ওয়েব পেজে কখন জাভাস্ক্রিপ্ট ফাইল যুক্ত করা হবে তা নির্দিষ্ট করে। এর পছন্দের এবং ডিফল্ট মান হলো
document_idle। - বিশ্ব
এক্সিকিউশনওয়ার্ল্ড ঐচ্ছিক
ক্রোম ১০২+স্ক্রিপ্টটি চালানোর জন্য জাভাস্ক্রিপ্ট "ওয়ার্ল্ড"। ডিফল্ট হিসেবে এটি
ISOLATEDথাকে।
ScriptInjection
বৈশিষ্ট্য
- আর্গস
যেকোনো[] ঐচ্ছিক
ক্রোম ৯২+প্রদত্ত ফাংশনে পাস করার জন্য আর্গুমেন্টসমূহ। এটি শুধুমাত্র তখনই বৈধ হবে যখন
funcপ্যারামিটারটি নির্দিষ্ট করা থাকবে। এই আর্গুমেন্টগুলো অবশ্যই JSON-সিরিয়ালাইজেবল হতে হবে। - ফাইল
স্ট্রিং[] ঐচ্ছিক
ইনজেক্ট করার জন্য JS বা CSS ফাইলগুলোর পাথ, যা এক্সটেনশনের রুট ডিরেক্টরির সাপেক্ষে নির্ধারিত হবে।
filesঅথবাfuncএর মধ্যে ঠিক যেকোনো একটি অবশ্যই উল্লেখ করতে হবে। - অবিলম্বে ইনজেকশন দিন
বুলিয়ান ঐচ্ছিক
ক্রোম ১০২+ইনজেকশনটি টার্গেটে যত তাড়াতাড়ি সম্ভব ট্রিগার করা উচিত কিনা। মনে রাখবেন, এটি পেজ লোড হওয়ার আগে ইনজেকশন ঘটবে এমন কোনো নিশ্চয়তা দেয় না, কারণ স্ক্রিপ্টটি টার্গেটে পৌঁছানোর আগেই পেজটি লোড হয়ে যেতে পারে।
- লক্ষ্য
যে টার্গেটে স্ক্রিপ্টটি ইনজেক্ট করতে হবে, তার বিবরণ।
- বিশ্ব
এক্সিকিউশনওয়ার্ল্ড ঐচ্ছিক
ক্রোম ৯৫+স্ক্রিপ্টটি চালানোর জন্য জাভাস্ক্রিপ্ট "ওয়ার্ল্ড"। ডিফল্ট হিসেবে এটি
ISOLATEDথাকে। - ফাংশন
বাতিল ঐচ্ছিক
ক্রোম ৯২+ইনজেক্ট করার জন্য একটি জাভাস্ক্রিপ্ট ফাংশন। এই ফাংশনটিকে প্রথমে সিরিয়ালাইজ এবং তারপর ইনজেকশনের জন্য ডিসিরিয়ালাইজ করা হবে। এর মানে হলো, যেকোনো বাউন্ড প্যারামিটার এবং এক্সিকিউশন কনটেক্সট হারিয়ে যাবে।
filesঅথবাfuncএর মধ্যে ঠিক যেকোনো একটি অবশ্যই নির্দিষ্ট করতে হবে।funcফাংশনটি দেখতে এইরকম:() => {...}
StyleOrigin
শৈলী পরিবর্তনের উৎস। আরও তথ্যের জন্য শৈলীর উৎস দেখুন।
এনাম
"লেখক" "ব্যবহারকারী"
পদ্ধতি
executeScript()
chrome.scripting.executeScript(
injection: ScriptInjection,
): Promise<InjectionResult[]>
একটি টার্গেট কনটেক্সটে একটি স্ক্রিপ্ট ইনজেক্ট করে। ডিফল্টরূপে, স্ক্রিপ্টটি document_idle এ রান হবে, অথবা পেজটি ইতিমধ্যে লোড হয়ে গেলে সাথে সাথেই রান হবে। যদি ` injectImmediately প্রপার্টিটি সেট করা থাকে, তাহলে স্ক্রিপ্টটি অপেক্ষা না করেই ইনজেক্ট হবে, এমনকি পেজটি লোড হওয়া শেষ না হলেও। যদি স্ক্রিপ্টটি একটি প্রমিজে ইভ্যালুয়েট হয়, তাহলে ব্রাউজার প্রমিজটি সেটেল হওয়া পর্যন্ত অপেক্ষা করবে এবং প্রাপ্ত ভ্যালুটি রিটার্ন করবে।
প্যারামিটার
- ইনজেকশন
যে স্ক্রিপ্টটি ইনজেক্ট করতে হবে তার বিবরণ।
ফেরত
প্রতিশ্রুতি< ইনজেকশনফলাফল []>
ক্রোম ৯০+একটি প্রমিস রিটার্ন করে যা ইনজেকশন সম্পন্ন হলে রিজলভ হয়। প্রাপ্ত অ্যারেটিতে প্রতিটি ফ্রেমের এক্সিকিউশনের ফলাফল থাকে, যেখানে ইনজেকশন সফল হয়েছে।
getRegisteredContentScripts()
chrome.scripting.getRegisteredContentScripts(
filter?: ContentScriptFilter,
): Promise<RegisteredContentScript[]>
এই এক্সটেনশনের জন্য ডায়নামিকভাবে নিবন্ধিত সমস্ত কন্টেন্ট স্ক্রিপ্ট ফেরত দেয় যা প্রদত্ত ফিল্টারের সাথে মেলে।
প্যারামিটার
- ফিল্টার
ContentScriptFilter ঐচ্ছিক
এক্সটেনশনের ডায়নামিকভাবে নিবন্ধিত স্ক্রিপ্টগুলো ফিল্টার করার জন্য একটি অবজেক্ট।
ফেরত
প্রতিশ্রুতি< নিবন্ধিত বিষয়বস্তু স্ক্রিপ্ট []>
insertCSS()
chrome.scripting.insertCSS(
injection: CSSInjection,
): Promise<void>
টার্গেট কনটেক্সটে একটি CSS স্টাইলশীট সন্নিবেশ করে। একাধিক ফ্রেম নির্দিষ্ট করা থাকলে, অসফল ইনজেকশনগুলো উপেক্ষা করা হয়।
প্যারামিটার
- ইনজেকশন
সন্নিবেশ করার জন্য স্টাইলগুলোর বিবরণ।
ফেরত
প্রতিশ্রুতি<শূন্য>
ক্রোম ৯০+একটি প্রমিজ রিটার্ন করে, যা ইনসারশন সম্পন্ন হলে রিজলভ হয়।
registerContentScripts()
chrome.scripting.registerContentScripts(
scripts: RegisteredContentScript[],
): Promise<void>
এই এক্সটেনশনের জন্য এক বা একাধিক কন্টেন্ট স্ক্রিপ্ট নিবন্ধন করে।
প্যারামিটার
- স্ক্রিপ্ট
নিবন্ধিত করার জন্য স্ক্রিপ্টগুলির একটি তালিকা রয়েছে। স্ক্রিপ্ট পার্সিং/ফাইল যাচাইকরণের সময় ত্রুটি হলে, অথবা নির্দিষ্ট করা আইডিগুলি আগে থেকেই বিদ্যমান থাকলে, কোনো স্ক্রিপ্ট নিবন্ধিত হয় না।
ফেরত
প্রতিশ্রুতি<শূন্য>
একটি প্রমিস রিটার্ন করে, যা স্ক্রিপ্টগুলো সম্পূর্ণভাবে নিবন্ধিত হয়ে গেলে রিজলভ হয় অথবা কোনো ত্রুটি ঘটলে রিজেক্ট হয়।
removeCSS()
chrome.scripting.removeCSS(
injection: CSSInjection,
): Promise<void>
এই এক্সটেনশন দ্বারা পূর্বে একটি টার্গেট কনটেক্সট থেকে সন্নিবেশিত CSS স্টাইলশীট মুছে ফেলে।
প্যারামিটার
- ইনজেকশন
যে স্টাইলগুলো সরাতে হবে তার বিবরণ। মনে রাখবেন যে
css,files, এবংoriginপ্রপার্টিগুলো অবশ্যইinsertCSSমাধ্যমে যুক্ত করা স্টাইলশীটের সাথে হুবহু মিলতে হবে। অস্তিত্বহীন কোনো স্টাইলশীট সরানোর চেষ্টা করলে তা কার্যকর হবে না।
ফেরত
প্রতিশ্রুতি<শূন্য>
একটি প্রমিস ফেরত দেয়, যা অপসারণ সম্পন্ন হলে রিজলভ হয়।
unregisterContentScripts()
chrome.scripting.unregisterContentScripts(
filter?: ContentScriptFilter,
): Promise<void>
এই এক্সটেনশনের জন্য কন্টেন্ট স্ক্রিপ্টগুলো অনিবন্ধিত করে।
প্যারামিটার
- ফিল্টার
ContentScriptFilter ঐচ্ছিক
নির্দিষ্ট করা থাকলে, শুধুমাত্র ফিল্টারের সাথে মিলে যাওয়া ডাইনামিক কন্টেন্ট স্ক্রিপ্টগুলোই অনিবন্ধিত করা হয়। অন্যথায়, এক্সটেনশনটির সমস্ত ডাইনামিক কন্টেন্ট স্ক্রিপ্ট অনিবন্ধিত হয়ে যায়।
ফেরত
প্রতিশ্রুতি<শূন্য>
একটি প্রমিজ রিটার্ন করে, যা স্ক্রিপ্টগুলো আনরেজিস্টার করা হলে রিজলভ হয় অথবা কোনো ত্রুটি ঘটলে রিজেক্ট হয়।
updateContentScripts()
chrome.scripting.updateContentScripts(
scripts: RegisteredContentScript[],
): Promise<void>
এই এক্সটেনশনের জন্য এক বা একাধিক কন্টেন্ট স্ক্রিপ্ট আপডেট করে।
প্যারামিটার
- স্ক্রিপ্ট
আপডেট করার জন্য স্ক্রিপ্টগুলির একটি তালিকা এতে রয়েছে। কোনো প্রপার্টি শুধুমাত্র বিদ্যমান স্ক্রিপ্টের জন্যই আপডেট করা হয়, যদি তা এই অবজেক্টে নির্দিষ্ট করা থাকে। স্ক্রিপ্ট পার্সিং/ফাইল যাচাইকরণের সময় কোনো ত্রুটি হলে, অথবা নির্দিষ্ট করা আইডিগুলো যদি কোনো সম্পূর্ণ নিবন্ধিত স্ক্রিপ্টের সাথে না মেলে, তাহলে কোনো স্ক্রিপ্টই আপডেট করা হয় না।
ফেরত
প্রতিশ্রুতি<শূন্য>
একটি প্রমিজ রিটার্ন করে, যা স্ক্রিপ্ট আপডেট হয়ে গেলে রিজলভ হয় অথবা কোনো ত্রুটি ঘটলে রিজেক্ট হয়।