browser.scripting

বিবরণ

বিভিন্ন কন্টেক্সটে স্ক্রিপ্ট এক্সিকিউট করতে chrome.scripting API ব্যবহার করুন।

অনুমতি

scripting

উপলভ্যতা

Chrome 88+ ব্রাউজার।* Chrome 148 থেকে MV3+

ম্যানিফেস্ট

browser.scripting API ব্যবহার করতে, ম্যানিফেস্টে "scripting" অনুমতি ঘোষণা করুন এবং এর সাথে স্ক্রিপ্ট ইনজেক্ট করার জন্য পৃষ্ঠার হোস্ট সংক্রান্ত অনুমতিও ঘোষণা করুন। "host_permissions" কী বা "activeTab" অনুমতি ব্যবহার করুন, যা সাময়িক হোস্ট সংক্রান্ত অনুমতি প্রদান করে। নিম্নলিখিত উদাহরণে activeTab অনুমতি ব্যবহার করা হয়।

{
  "name": "Scripting Extension",
  "manifest_version": 3,
  "permissions": ["scripting", "activeTab"],
  ...
}

ধারণা ও ব্যবহার

আপনি browser.scripting API ব্যবহার করে ওয়েবসাইটে জাভাস্ক্রিপ্ট ও CSS ইনজেক্ট করতে পারবেন। কন্টেন্ট স্ক্রিপ্ট-এর মাধ্যমে আপনি যা করতে পারেন, এটিও তার মতোই। তবে browser.scripting নেমস্পেস ব্যবহার করে, এক্সটেনশন রানটাইমে সিদ্ধান্ত নিতে পারে।

ইনজেকশন টার্গেট

আপনি target প্যারামিটার ব্যবহার করে জাভাস্ক্রিপ্ট বা CSS ইনজেক্ট করার জন্য টার্গেট নির্দিষ্ট করতে পারেন।

শুধুমাত্র 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() কোনও ফলাফল দেখায় না।

প্রতিশ্রুতি

স্ক্রিপ্ট এক্সিকিউশনের ফলে প্রাপ্ত ভ্যালু যদি প্রমিস হয়, তাহলে Chrome প্রমিস সেটেল হওয়া পর্যন্ত অপেক্ষা করবে এবং প্রাপ্ত ভ্যালু রিটার্ন করবে।

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

Chrome 96+ Chrome 148 থেকে browser.*

প্রপার্টি

  • আইডি

    string[] ঐচ্ছিক

    উল্লেখ করা থাকলে, getRegisteredContentScripts শুধুমাত্র এই তালিকায় উল্লেখ করা আইডি সহ স্ক্রিপ্ট ফিরিয়ে দেবে।

CSSInjection

প্রপার্টি

  • css

    স্ট্রিং ঐচ্ছিক

    ইনজেক্ট করার জন্য CSS সহ স্ট্রিং। files এবং css-এর মধ্যে ঠিক একটি নির্দিষ্ট করতে হবে।

  • ফাইল

    string[] ঐচ্ছিক

    এক্সটেনশনের রুট ডিরেক্টরির সাথে আপেক্ষিক, ইনজেক্ট করার জন্য CSS ফাইলের পাথ। files এবং css-এর মধ্যে ঠিক একটি নির্দিষ্ট করতে হবে।

  • উৎস

    StyleOrigin ঐচ্ছিক

    ইনজেকশনের জন্য স্টাইল অরিজিন। ডিফল্ট হিসেবে 'AUTHOR' সেট করা থাকে।

  • যে টার্গেটে CSS ইনসার্ট করতে হবে তার বিবরণ।

ExecutionWorld

Chrome 95+ Chrome 148 থেকে browser.*

স্ক্রিপ্ট এক্সিকিউট করার জন্য জাভাস্ক্রিপ্ট ওয়ার্ল্ড।

Enum

"ISOLATED"
আইসোলেটেড ওয়ার্ল্ড নির্দিষ্ট করে, যা এই এক্সটেনশনের জন্য অনন্য এক্সিকিউশন এনভায়রনমেন্ট।

"MAIN"
DOM-এর প্রধান জগৎ নির্দিষ্ট করে, যা হোস্ট পৃষ্ঠার জাভাস্ক্রিপ্টের সাথে শেয়ার করা এক্সিকিউশন এনভায়রনমেন্ট।

InjectionResult

প্রপার্টি

  • documentId

    স্ট্রিং

    Chrome 106+ Chrome 148 থেকে browser.*

    ইনজেকশনের সাথে যুক্ত ডকুমেন্ট।

  • frameId

    নম্বর

    Chrome 90+ browser.* Chrome 148 থেকে

    ইনজেকশনের সাথে যুক্ত ফ্রেম।

  • ফলাফল

    যেকোনও ঐচ্ছিক

    স্ক্রিপ্ট এক্সিকিউশনের ফলাফল।

InjectionTarget

প্রপার্টি

  • allFrames

    বুলিয়ান ঐচ্ছিক

    ট্যাবের মধ্যে থাকা সব ফ্রেমে স্ক্রিপ্ট ইনজেক্ট করা হবে কিনা। ডিফল্ট হিসেবে false সেট করা থাকে। frameIds উল্লেখ করা থাকলে এটি সত্য হওয়া উচিত নয়।

  • documentIds

    string[] ঐচ্ছিক

    Chrome 106+ Chrome 148 থেকে browser.*

    নির্দিষ্ট documentIds-এর আইডি যাতে ইনজেক্ট করা যায়। frameIds সেট করা থাকলে এটি সেট করা যাবে না।

  • frameIds

    number[] ঐচ্ছিক

    নির্দিষ্ট ফ্রেমের আইডি, যেখানে ইনজেক্ট করতে হবে।

  • tabId

    নম্বর

    যে ট্যাবে ইনজেক্ট করতে হবে সেটির আইডি।

RegisteredContentScript

Chrome 96+ Chrome 148 থেকে browser.*

প্রপার্টি

  • allFrames

    বুলিয়ান ঐচ্ছিক

    'ট্রু' হিসেবে নির্দিষ্ট করা হলে, এটি সব ফ্রেমে ইনজেক্ট করবে, এমনকি ফ্রেমটি ট্যাবের সবচেয়ে উপরের ফ্রেম না হলেও। URL সংক্রান্ত প্রয়োজনীয়তার জন্য প্রতিটি ফ্রেম আলাদাভাবে চেক করা হয়; URL সংক্রান্ত প্রয়োজনীয়তা পূরণ না হলে এটি চাইল্ড ফ্রেমে ইনজেক্ট করা হবে না। ডিফল্ট হিসেবে false সেট করা থাকে, যার অর্থ হল শুধুমাত্র উপরের ফ্রেমটি ম্যাচ করা হয়।

  • css

    string[] ঐচ্ছিক

    ম্যাচিং পৃষ্ঠায় ইনজেক্ট করার জন্য CSS ফাইলের তালিকা। পৃষ্ঠার জন্য কোনও DOM তৈরি বা দেখানোর আগে, এই অ্যারেতে যে ক্রমে এগুলি দেখানো হয় সেই ক্রমেই এগুলি ইনজেক্ট করা হয়।

  • excludeMatches

    string[] ঐচ্ছিক

    এই কন্টেন্ট স্ক্রিপ্ট অন্যথায় যে পৃষ্ঠাগুলিতে ইনজেক্ট করা হবে সেগুলি বাদ দেয়। এইসব স্ট্রিংয়ের সিনট্যাক্স সম্পর্কে আরও জানতে ম্যাচ প্যাটার্ন দেখুন।

  • id

    স্ট্রিং

    API কলে উল্লেখ করা কন্টেন্ট স্ক্রিপ্টের আইডি। '_' দিয়ে শুরু করা যাবে না কারণ এটি জেনারেট করা স্ক্রিপ্ট আইডির প্রিফিক্স হিসেবে রিজার্ভ করা আছে।

  • js

    string[] ঐচ্ছিক

    ম্যাচিং পৃষ্ঠায় ইনজেক্ট করার জন্য জাভাস্ক্রিপ্ট ফাইলের তালিকা। এই অ্যারেতে যে ক্রমে এগুলি দেখানো হয় সেই ক্রমেই এগুলি ইনজেক্ট করা হয়।

  • matchOriginAsFallback

    বুলিয়ান ঐচ্ছিক

    Chrome 119+ Chrome 148 থেকে browser.*

    URL-এ কাজ করে না এমন স্কিম থাকলে, স্ক্রিপ্টটি ফ্রেমে ইনজেক্ট করা যাবে কিনা তা নির্দেশ করে; বিশেষত: about:, data:, blob:, বা filesystem:। এইসব ক্ষেত্রে, স্ক্রিপ্ট ইনজেক্ট করা উচিত কিনা তা নির্ধারণ করতে URL-এর উৎস চেক করা হয়। উৎস যদি null হয় (যেমন, ডেটা: URL-এর ক্ষেত্রে হয়) তাহলে ব্যবহৃত উৎস হয় বর্তমান ফ্রেম তৈরি করা ফ্রেম অথবা এই ফ্রেমে নেভিগেশন শুরু করা ফ্রেম। মনে রাখবেন যে এটি পেরেন্ট ফ্রেম নাও হতে পারে।

  • মিলে গেছে

    string[] ঐচ্ছিক

    কোন পৃষ্ঠায় এই কন্টেন্ট স্ক্রিপ্ট ইনজেক্ট করা হবে তা নির্দিষ্ট করে। এইসব স্ট্রিংয়ের সিনট্যাক্স সম্পর্কে আরও জানতে ম্যাচ প্যাটার্ন দেখুন। registerContentScripts-এর জন্য অবশ্যই নির্দিষ্ট করতে হবে।

  • persistAcrossSessions

    বুলিয়ান ঐচ্ছিক

    এই কন্টেন্ট স্ক্রিপ্ট ভবিষ্যতের সেশনেও থাকবে কিনা তা নির্দিষ্ট করে। ডিফল্ট হল সত্য।

  • runAt

    RunAt ঐচ্ছিক

    ওয়েব পেজে কখন জাভাস্ক্রিপ্ট ফাইল ইনজেক্ট করা হবে তা নির্দিষ্ট করে। পছন্দের এবং ডিফল্ট ভ্যালু হল document_idle।

  • বিশ্ব

    ExecutionWorld ঐচ্ছিক

    Chrome 102+ ব্রাউজার।* Chrome 148 থেকে

    স্ক্রিপ্ট রান করার জন্য জাভাস্ক্রিপ্ট "ওয়ার্ল্ড"। ডিফল্ট হিসেবে ISOLATED সেট করা থাকে।

ScriptInjection

প্রপার্টি

  • args

    any[] ঐচ্ছিক

    Chrome 92+ browser.* Chrome 148 থেকে

    প্রদান করা ফাংশনে পাস করার জন্য আর্গুমেন্ট। func প্যারামিটার উল্লেখ করা থাকলে তবেই এটি কাজ করবে। এইসব আর্গুমেন্ট JSON-সিরিয়ালাইজেবল হতে হবে।

  • ফাইল

    string[] ঐচ্ছিক

    এক্সটেনশনের রুট ডিরেক্টরির সাথে আপেক্ষিক, ইনজেক্ট করার জন্য JS বা CSS ফাইলের পাথ। files বা func-এর মধ্যে যেকোনও একটি উল্লেখ করতে হবে।

  • injectImmediately

    বুলিয়ান ঐচ্ছিক

    Chrome 102+ ব্রাউজার।* Chrome 148 থেকে

    টার্গেটে যত তাড়াতাড়ি সম্ভব ইনজেকশন ট্রিগার করা উচিত কিনা। মনে রাখবেন, পৃষ্ঠা লোড হওয়ার আগে ইঞ্জেকশন হবেই, এমন কোনও গ্যারেন্টি নেই, কারণ স্ক্রিপ্ট টার্গেটে পৌঁছানোর আগেই পৃষ্ঠা লোড হয়ে যেতে পারে।

  • স্ক্রিপ্টটি কোন টার্গেটে ইনজেক্ট করতে হবে তা নির্দিষ্ট করে বিবরণ।

  • বিশ্ব

    ExecutionWorld ঐচ্ছিক

    Chrome 95+ Chrome 148 থেকে browser.*

    স্ক্রিপ্ট রান করার জন্য জাভাস্ক্রিপ্ট "ওয়ার্ল্ড"। ডিফল্ট হিসেবে ISOLATED সেট করা থাকে।

  • func

    void ঐচ্ছিক

    Chrome 92+ browser.* Chrome 148 থেকে

    ইনজেক্ট করার জন্য একটি জাভাস্ক্রিপ্ট ফাংশন। এই ফাংশনটি সিরিয়ালাইজ করা হবে এবং তারপরে ইনজেকশনের জন্য ডিসিরিয়ালাইজ করা হবে। এর অর্থ হল, যেকোনও বাউন্ড প্যারামিটার ও এক্সিকিউশন কনটেক্সট হারিয়ে যাবে। files বা func-এর মধ্যে যেকোনও একটি উল্লেখ করতে হবে।

    func ফাংশনটি দেখতে এইরকম:

    () => {...}

StyleOrigin

স্টাইল পরিবর্তনের উৎস। আরও তথ্যের জন্য স্টাইলের উৎস দেখুন।

Enum

"লেখক"

"USER"

পদ্ধতি

executeScript()

browser.scripting.executeScript(
  injection: ScriptInjection,
)
: Promise<InjectionResult[]>

টার্গেট কনটেক্সটে স্ক্রিপ্ট ইনজেক্ট করে। ডিফল্ট হিসেবে, স্ক্রিপ্টটি document_idle-এ রান করবে অথবা পৃষ্ঠাটি আগে থেকেই লোড হয়ে থাকলে অবিলম্বে রান করবে। injectImmediately প্রপার্টি সেট করা থাকলে, পৃষ্ঠা লোড হওয়া শেষ না হলেও, স্ক্রিপ্ট অপেক্ষা না করেই ইনজেক্ট করবে। স্ক্রিপ্টটি যদি কোনও প্রমিস মূল্যায়ন করে, তাহলে ব্রাউজার প্রমিসটি সেটেল হওয়ার জন্য অপেক্ষা করবে এবং ফলাফল ভ্যালু ফিরিয়ে দেবে।

প্যারামিটারগুলি

  • ইঞ্জেকশন

    যে স্ক্রিপ্ট ইনজেক্ট করতে হবে তার বিবরণ।

রিটার্ন

  • Promise<InjectionResult[]>

    Chrome 90+ browser.* Chrome 148 থেকে

    ইনজেকশন সম্পূর্ণ হওয়ার পরে সমাধান করে এমন একটি Promise রিটার্ন করে। ফলাফল হিসেবে পাওয়া অ্যারেতে প্রতিটি ফ্রেমের জন্য এক্সিকিউশনের ফলাফল থাকে যেখানে ইনজেকশন সফল হয়েছে।

getRegisteredContentScripts()

Chrome 96+ Chrome 148 থেকে browser.*
browser.scripting.getRegisteredContentScripts(
  filter?: ContentScriptFilter,
)
: Promise<RegisteredContentScript[]>

এই এক্সটেনশনের জন্য প্রদত্ত ফিল্টারের সাথে মেলে এমন সব ডাইনামিক্যালি রেজিস্টার করা কন্টেন্ট স্ক্রিপ্ট রিটার্ন করে।

প্যারামিটারগুলি

  • ফিল্টার করুন

    ContentScriptFilter ঐচ্ছিক

    এক্সটেনশনের ডায়নামিকভাবে রেজিস্টার করা স্ক্রিপ্ট ফিল্টার করার অবজেক্ট।

রিটার্ন

insertCSS()

browser.scripting.insertCSS(
  injection: CSSInjection,
)
: Promise<void>

টার্গেট কনটেক্সটে CSS স্টাইলশিট যোগ করে। একাধিক ফ্রেম নির্দিষ্ট করা থাকলে, অসফল ইনজেকশন উপেক্ষা করা হয়।

প্যারামিটারগুলি

  • ইঞ্জেকশন

    যে স্টাইল যোগ করতে হবে তার বিবরণ।

রিটার্ন

  • <void> প্রমিস

    Chrome 90+ browser.* Chrome 148 থেকে

    একটি Promise রিটার্ন করে যা ইনসার্ট করার প্রসেস সম্পূর্ণ হলে সমাধান হয়ে যায়।

registerContentScripts()

Chrome 96+ Chrome 148 থেকে browser.*
browser.scripting.registerContentScripts(
  scripts: RegisteredContentScript[],
)
: Promise<void>

এই এক্সটেনশনের জন্য এক বা একাধিক কন্টেন্ট স্ক্রিপ্ট রেজিস্টার করে।

প্যারামিটারগুলি

  • স্ক্রিপ্ট

    রেজিস্টার করতে হবে এমন স্ক্রিপ্টের তালিকা রয়েছে। স্ক্রিপ্ট পার্সিং/ফাইল যাচাইকরণের সময় কোনও সমস্যা হলে অথবা নির্দিষ্ট করা আইডি আগে থেকেই থাকলে, কোনও স্ক্রিপ্ট রেজিস্টার করা হয় না।

রিটার্ন

  • <void> প্রমিস

    স্ক্রিপ্ট সম্পূর্ণভাবে রেজিস্টার করা হয়ে গেলে একটি Promise রিটার্ন করে অথবা কোনও সমস্যা হলে তা বাতিল করে দেয়।

removeCSS()

Chrome 90+ browser.* Chrome 148 থেকে
browser.scripting.removeCSS(
  injection: CSSInjection,
)
: Promise<void>

এই এক্সটেনশন দ্বারা আগে টার্গেট কনটেক্সটে যোগ করা CSS স্টাইলশিট সরিয়ে দেয়।

প্যারামিটারগুলি

  • ইঞ্জেকশন

    যেসব স্টাইল সরিয়ে দিতে হবে সেগুলির বিবরণ। মনে রাখবেন যে css, files এবং origin প্রপার্টি অবশ্যই insertCSS-এর মাধ্যমে যোগ করা স্টাইলশিটের সাথে হুবহু মিলতে হবে। অস্তিত্ব নেই এমন স্টাইলশিট সরানোর চেষ্টা করা হলে কোনও কাজ হয় না।

রিটার্ন

  • <void> প্রমিস

    একটি Promise রিটার্ন করে যা সরানো সম্পূর্ণ হলে সমাধান করে।

unregisterContentScripts()

Chrome 96+ Chrome 148 থেকে browser.*
browser.scripting.unregisterContentScripts(
  filter?: ContentScriptFilter,
)
: Promise<void>

এই এক্সটেনশনের জন্য কন্টেন্ট স্ক্রিপ্ট অনিবন্ধিত করে।

প্যারামিটারগুলি

  • ফিল্টার করুন

    ContentScriptFilter ঐচ্ছিক

    উল্লেখ করা থাকলে, শুধুমাত্র ফিল্টারের সাথে ম্যাচ করা ডায়নামিক কন্টেন্ট স্ক্রিপ্ট আনরেজিস্টার করে। অন্যথায়, এক্সটেনশনের সব পরিবর্তনশীল কন্টেন্ট স্ক্রিপ্ট অনিবন্ধিত হয়ে যায়।

রিটার্ন

  • <void> প্রমিস

    স্ক্রিপ্ট অনিবন্ধিত হয়ে গেলে বা কোনও সমস্যা হলে, এটি একটি Promise রিটার্ন করে।

updateContentScripts()

Chrome 96+ Chrome 148 থেকে browser.*
browser.scripting.updateContentScripts(
  scripts: RegisteredContentScript[],
)
: Promise<void>

এই এক্সটেনশনের জন্য এক বা একাধিক কন্টেন্ট স্ক্রিপ্ট আপডেট করে।

প্যারামিটারগুলি

  • স্ক্রিপ্ট

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

রিটার্ন

  • <void> প্রমিস

    স্ক্রিপ্ট আপডেট হয়ে গেলে একটি Promise রিটার্ন করে অথবা কোনও সমস্যা হলে বাতিল করে দেয়।