browser.userScripts

বিবরণ

ব্যবহারকারীর স্ক্রিপ্ট কন্টেক্সটে ব্যবহারকারীর স্ক্রিপ্ট এক্সিকিউট করতে userScripts API ব্যবহার করুন।

অনুমতি

userScripts

User Scripts API, browser.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 120+ ব্রাউজার।* Chrome 148 থেকে MV3+

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

ব্যবহারকারীর স্ক্রিপ্ট হল কোডের একটি স্নিপেট যা কোনও ওয়েব পেজের চেহারা বা আচরণ পরিবর্তন করার জন্য তাতে ইনজেক্ট করা হয়। কন্টেন্ট স্ক্রিপ্ট এবং browser.scripting API-এর মতো অন্যান্য এক্সটেনশন ফিচারের মতো নয়, User Scripts API আপনাকে ইচ্ছামতো কোড রান করতে দেয়। ব্যবহারকারীর প্রদান করা স্ক্রিপ্ট রান করে এমন এক্সটেনশনের জন্য এই API প্রয়োজন, যা আপনার এক্সটেনশন প্যাকেজের অংশ হিসেবে পাঠানো যাবে না।

userScripts API-এর ব্যবহার চালু করুন

আপনার এক্সটেনশন userScripts API ব্যবহার করার অনুমতি পাওয়ার পরে, ব্যবহারকারীদের অবশ্যই একটি নির্দিষ্ট টগল চালু করতে হবে যাতে আপনার এক্সটেনশন API ব্যবহার করতে পারে। প্রয়োজনীয় নির্দিষ্ট টগল এবং বন্ধ করা থাকলে API-এর আচরণ, Chrome ভার্সন অনুযায়ী আলাদা হয়।

ব্যবহারকারীকে কোন টগল চালু করতে হবে তা নির্ধারণ করতে নিম্নলিখিত চেক ব্যবহার করুন, যেমন, নতুন ব্যবহারকারীর অনবোর্ডিংয়ের সময়:

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-এর ১৩৮ ভার্সনের আগের ভার্সন (ডেভেলপার মোড টগল)

এক্সটেনশন ডেভেলপার হিসেবে, আপনার ইনস্টল করা Chrome-এ আগে থেকেই ডেভেলপার মোড চালু করা আছে। আপনার ব্যবহারকারীদেরও ডেভেলপার মোড চালু করতে হবে।

আপনি নিম্নলিখিত নির্দেশাবলী কপি করে আপনার ব্যবহারকারীদের জন্য আপনার এক্সটেনশনের ডকুমেন্টেশনে পেস্ট করতে পারেন

  1. নতুন ট্যাবে chrome://extensions লিখে এক্সটেনশন পৃষ্ঠায় যান। (ডিজাইন অনুযায়ী chrome:// URL লিঙ্ক করা যায় না।)
  2. ডেভেলপার মোড-এর পাশে টগল সুইচ ক্লিক করে ডেভেলপার মোড চালু করুন।

    Chrome এক্সটেনশন পৃষ্ঠায় ডেভেলপার মোড টগল হাইলাইট করা আছে

    এক্সটেনশন পৃষ্ঠা (chrome://extensions)

Chrome ভার্সন 138 এবং তার পরবর্তী ভার্সন (ব্যবহারকারীর স্ক্রিপ্ট টগল করার অনুমতি দিন)

ব্যবহারকারীর স্ক্রিপ্ট রান করার অনুমতি দিন টগল প্রতিটি এক্সটেনশনের বিবরণ পৃষ্ঠায় (যেমন, chrome://extensions/?id=YOUR_EXTENSION_ID) থাকে।

আপনি নিম্নলিখিত নির্দেশাবলী কপি করে আপনার ব্যবহারকারীদের জন্য এক্সটেনশনের ডকুমেন্টেশনে পেস্ট করতে পারেন:

  1. নতুন ট্যাবে chrome://extensions লিখে এক্সটেনশন পৃষ্ঠায় যান। (ডিজাইন অনুযায়ী chrome:// URL লিঙ্ক করা যায় না।)
  2. এক্সটেনশন সম্পর্কে বিস্তারিত তথ্য দেখতে এক্সটেনশন কার্ডে "বিবরণ" বোতামে ক্লিক করুন।
  3. ব্যবহারকারীর স্ক্রিপ্ট রান করার অনুমতি দিন বিকল্পের পাশে থাকা টগল সুইচে ক্লিক করুন।
এক্সটেনশনের বিবরণ পৃষ্ঠায় 'ব্যবহারকারীর স্ক্রিপ্ট রান করার অনুমতি দিন' টগল
ব্যবহারকারীর স্ক্রিপ্ট রান করার অনুমতি দিন টগল (chrome://extensions/?id=abc...)

API উপলভ্য কিনা তা চেক করুন

userScripts API চালু আছে কিনা তা নির্ধারণ করতে আমরা নিম্নলিখিত চেকটি করার সাজেশন দিই, কারণ এটি সব Chrome ভার্সনে কাজ করে। এই চেকটি একটি browser.userScripts() পদ্ধতি কল করার চেষ্টা করে যা API উপলভ্য থাকলে সর্বদা সফল হওয়া উচিত। এই কলটি কোনও ত্রুটি দেখালে, API উপলভ্য নেই:

function isUserScriptsAvailable() {
  try {
    // Method call which throws if API permission or toggle is not enabled.
    browser.userScripts.getScripts();
    return true;
  } catch {
    // Not available.
    return false;
  }
}

আইসোলেটেড ওয়ার্ল্ডে কাজ করুন

ব্যবহারকারী ও কন্টেন্ট স্ক্রিপ্ট, দুটিই আইসোলেটেড ওয়ার্ল্ড বা মূল ওয়ার্ল্ডে রান করতে পারে। আইসোলেটেড ওয়ার্ল্ড হল এমন একটি এক্সিকিউশন এনভায়রনমেন্ট যা হোস্ট পৃষ্ঠা বা অন্যান্য এক্সটেনশন অ্যাক্সেস করতে পারে না। এটি হোস্ট পৃষ্ঠা বা অন্যান্য এক্সটেনশনের ব্যবহারকারী এবং কন্টেন্ট স্ক্রিপ্টকে প্রভাবিত না করেই ব্যবহারকারী স্ক্রিপ্টকে তার জাভাস্ক্রিপ্ট এনভায়রনমেন্ট পরিবর্তন করতে দেয়। বিপরীতভাবে, ব্যবহারকারীর স্ক্রিপ্ট (এবং কন্টেন্ট স্ক্রিপ্ট) হোস্ট পৃষ্ঠা বা ব্যবহারকারী এবং অন্যান্য এক্সটেনশনের কন্টেন্ট স্ক্রিপ্টের কাছে দৃশ্যমান নয়। মূল ওয়ার্ল্ডে চলা স্ক্রিপ্ট হোস্ট পৃষ্ঠা ও অন্যান্য এক্সটেনশনের জন্য অ্যাক্সেসযোগ্য এবং হোস্ট পৃষ্ঠা ও অন্যান্য এক্সটেনশনের জন্য দৃশ্যমান। ওয়ার্ল্ড বেছে নিতে, userScripts.register() কল করার সময় "USER_SCRIPT" বা "MAIN" পাস করুন।

USER_SCRIPT ওয়ার্ল্ডের জন্য কন্টেন্ট নিরাপত্তা নীতি কনফিগার করতে, userScripts.configureWorld()-এ কল করুন:

browser.userScripts.configureWorld({
  csp: "script-src 'self'"
});

মেসেজিং

কন্টেন্ট স্ক্রিপ্ট ও অফস্ক্রিন ডকুমেন্টের মতো, ইউজার স্ক্রিপ্ট মেসেজিং ব্যবহার করে এক্সটেনশনের অন্যান্য অংশের সাথে যোগাযোগ করে (অর্থাৎ, এক্সটেনশনের অন্য যেকোনও অংশের মতো এগুলিও runtime.sendMessage() ও runtime.connect() কল করতে পারে)। তবে, এগুলি নির্দিষ্ট ইভেন্ট হ্যান্ডলার ব্যবহার করে পাওয়া যায় (অর্থাৎ, এগুলি onMessage বা onConnect ব্যবহার করে না)। এই হ্যান্ডলারগুলিকে runtime.onUserScriptMessage এবং runtime.onUserScriptConnect বলা হয়। ডেডিকেটেড হ্যান্ডলার ব্যবহারকারীর স্ক্রিপ্ট থেকে মেসেজ শনাক্ত করা সহজ করে তোলে, যা কম বিশ্বস্ত প্রসঙ্গ।

মেসেজ পাঠানোর আগে, আপনাকে অবশ্যই messaging আর্গুমেন্ট true-এ সেট করে configureWorld()-এ কল করতে হবে। মনে রাখবেন, csp এবং messaging আর্গুমেন্ট একই সাথে পাস করা যেতে পারে।

browser.userScripts.configureWorld({
  messaging: true
});

এক্সটেনশন আপডেট

কোনও এক্সটেনশন আপডেট করা হলে ব্যবহারকারীর স্ক্রিপ্ট মুছে যায়। এক্সটেনশন সার্ভিস ওয়ার্কারের runtime.onInstalled ইভেন্ট হ্যান্ডলারে কোড রান করে আপনি সেগুলি আবার যোগ করতে পারবেন। ইভেন্ট কলব্যাকে পাস করা শুধুমাত্র "update" কারণের উত্তর দিন।

উদাহরণ

এই উদাহরণটি আমাদের স্যাম্পেল রিপোজিটরির userScript স্যাম্পেল থেকে নেওয়া হয়েছে।

স্ক্রিপ্ট রেজিস্টার করুন

নিচের উদাহরণে register()-এ করা একটি সাধারণ কল দেখানো হয়েছে। প্রথম আর্গুমেন্ট হল অবজেক্টের একটি অ্যারে যা রেজিস্টার করা স্ক্রিপ্টকে সংজ্ঞায়িত করে। এখানে দেখানো বিকল্পের চেয়ে আরও বেশি বিকল্প আছে।

browser.userScripts.register([{
  id: 'test',
  matches: ['*://*/*'],
  js: [{code: 'alert("Hi!")'}]
}]);

ধরন

ExecutionWorld

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

Enum

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

"USER_SCRIPT"
এক্সিকিউশন এনভায়রনমেন্ট নির্দিষ্ট করে যা ব্যবহারকারীর স্ক্রিপ্টের জন্য নির্দিষ্ট এবং পৃষ্ঠার CSP থেকে অব্যাহতিপ্রাপ্ত।

InjectionResult

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

প্রপার্টি

  • documentId

    স্ট্রিং

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

  • সমস্যা

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

    কোনও সমস্যা হলে, সেটি। error এবং result পরস্পরকে বাদ দিয়ে কাজ করে।

  • frameId

    নম্বর

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

  • ফলাফল

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

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

InjectionTarget

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

প্রপার্টি

  • allFrames

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

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

  • documentIds

    string[] ঐচ্ছিক

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

  • frameIds

    number[] ঐচ্ছিক

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

  • tabId

    নম্বর

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

RegisteredUserScript

প্রপার্টি

  • allFrames

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

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

  • excludeGlobs

    string[] ঐচ্ছিক

    এই ব্যবহারকারীর স্ক্রিপ্ট যেসব পৃষ্ঠায় ইনজেক্ট করা হবে না সেগুলির জন্য ওয়াইল্ডকার্ড প্যাটার্ন নির্দিষ্ট করে।

  • excludeMatches

    string[] ঐচ্ছিক

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

  • id

    স্ট্রিং

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

  • includeGlobs

    string[] ঐচ্ছিক

    এই ব্যবহারকারীর স্ক্রিপ্ট যে পৃষ্ঠাগুলিতে ইনজেক্ট করা হবে সেগুলির জন্য ওয়াইল্ডকার্ড প্যাটার্ন নির্দিষ্ট করে।

  • js

    ScriptSource[] ঐচ্ছিক

    ScriptSource অবজেক্টের তালিকা যা ম্যাচিং পৃষ্ঠায় ইনজেক্ট করার জন্য স্ক্রিপ্টের সোর্স নির্ধারণ করে। এই প্রপার্টি ${ref:register}-এর জন্য নির্দিষ্ট করতে হবে এবং নির্দিষ্ট করা হলে এটি খালি নয় এমন অ্যারে হতে হবে।

  • মিলে গেছে

    string[] ঐচ্ছিক

    কোন কোন পৃষ্ঠায় এই ব্যবহারকারী স্ক্রিপ্ট ইনজেক্ট করা হবে তা নির্দিষ্ট করে। এইসব স্ট্রিংয়ের সিনট্যাক্স সম্পর্কে আরও জানতে ম্যাচ প্যাটার্ন দেখুন। ${ref:register}-এর জন্য এই প্রপার্টি অবশ্যই উল্লেখ করতে হবে।

  • runAt

    RunAt ঐচ্ছিক

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

  • বিশ্ব

    ExecutionWorld ঐচ্ছিক

    স্ক্রিপ্ট চালানোর জন্য জাভাস্ক্রিপ্ট এক্সিকিউশন এনভায়রনমেন্ট। ডিফল্ট হল `USER_SCRIPT`।

  • worldId

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

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

    এক্সিকিউট করার জন্য ব্যবহারকারীর স্ক্রিপ্ট ওয়ার্ল্ড আইডি নির্দিষ্ট করে। বাদ দেওয়া হলে, স্ক্রিপ্টটি ডিফল্ট ব্যবহারকারী স্ক্রিপ্ট ওয়ার্ল্ডে এক্সিকিউট হবে। world বাদ দেওয়া হলে বা USER_SCRIPT হলে তবেই এটি বৈধ। প্রথমে আন্ডারস্কোর (_) আছে এমন ভ্যালু রিজার্ভ করা আছে।

ScriptSource

প্রপার্টি

  • কোড

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

    ইনজেক্ট করার জন্য JavaScript কোড সহ স্ট্রিং। file বা code-এর মধ্যে যেকোনও একটি উল্লেখ করতে হবে।

  • ফাইল

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

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

UserScriptFilter

প্রপার্টি

  • আইডি

    string[] ঐচ্ছিক

    getScripts শুধুমাত্র এই তালিকায় উল্লেখ করা আইডি সহ স্ক্রিপ্ট ফিরিয়ে আনে।

UserScriptInjection

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

প্রপার্টি

  • injectImmediately

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

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

  • ScriptSource অবজেক্টের তালিকা যা টার্গেটে ইনজেক্ট করার জন্য স্ক্রিপ্টের সোর্স নির্ধারণ করে।

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

  • বিশ্ব

    ExecutionWorld ঐচ্ছিক

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

  • worldId

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

    এক্সিকিউট করার জন্য ব্যবহারকারীর স্ক্রিপ্ট ওয়ার্ল্ড আইডি নির্দিষ্ট করে। বাদ দেওয়া হলে, স্ক্রিপ্টটি ডিফল্ট ব্যবহারকারী স্ক্রিপ্ট ওয়ার্ল্ডে এক্সিকিউট হবে। world বাদ দেওয়া হলে বা USER_SCRIPT হলে তবেই এটি বৈধ। প্রথমে আন্ডারস্কোর (_) আছে এমন ভ্যালু রিজার্ভ করা আছে।

WorldProperties

প্রপার্টি

  • csp

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

    বিশ্বের csp নির্দিষ্ট করে। ডিফল্ট হল `ISOLATED` ওয়ার্ল্ড csp।

  • মেসেজিং

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

    মেসেজিং API সর্বজনীনভাবে প্রকাশিত হয়েছে কিনা তা উল্লেখ করে। ডিফল্ট হল false।

  • worldId

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

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

    আপডেট করার জন্য নির্দিষ্ট ইউজার স্ক্রিপ্ট ওয়ার্ল্ডের আইডি উল্লেখ করে। প্রদান করা না হলে, ডিফল্ট ব্যবহারকারী স্ক্রিপ্ট ওয়ার্ল্ডের প্রপার্টি আপডেট করে। প্রথমে আন্ডারস্কোর (_) আছে এমন ভ্যালু রিজার্ভ করা আছে।

পদ্ধতি

configureWorld()

browser.userScripts.configureWorld(
  properties: WorldProperties,
)
: Promise<void>

`USER_SCRIPT` এক্সিকিউশন এনভায়রনমেন্ট কনফিগার করে।

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

  • প্রপার্টি

    ব্যবহারকারীর স্ক্রিপ্ট ওয়ার্ল্ড কনফিগারেশন রয়েছে।

রিটার্ন

  • <void> প্রমিস

    ওয়ার্ল্ড কনফিগার করা হয়ে গেলে প্রমিস রিজলভ হয়।

execute()

Chrome 135+ Chrome 148 থেকে browser.*
browser.userScripts.execute(
  injection: UserScriptInjection,
)
: Promise<InjectionResult[]>

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

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

রিটার্ন

getScripts()

browser.userScripts.getScripts(
  filter?: UserScriptFilter,
)
: Promise<RegisteredUserScript[]>

এই এক্সটেনশনের জন্য সব ডায়নামিক্যালি-রেজিস্টার করা ব্যবহারকারীর স্ক্রিপ্ট ফিরিয়ে আনে।

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

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

    UserScriptFilter ঐচ্ছিক

    নির্দিষ্ট করা থাকলে, এই পদ্ধতি শুধুমাত্র সেইসব ব্যবহারকারীর স্ক্রিপ্ট ফিরিয়ে দেয় যা এটির সাথে মেলে।

রিটার্ন

  • রেজিস্টার করা স্ক্রিপ্টের মাধ্যমে সমাধান করার প্রতিশ্রুতি। কোনও সমস্যা হলে প্রমিস বাতিল করা হবে।

getWorldConfigurations()

Chrome 133+ Chrome 148 থেকে browser.*
browser.userScripts.getWorldConfigurations(): Promise<WorldProperties[]>

রেজিস্টার করা সব ওয়ার্ল্ড কনফিগারেশন ফিরিয়ে আনে।

রিটার্ন

  • Promise<WorldProperties[]>

    রেজিস্টার করা ওয়ার্ল্ড কনফিগারেশনের সাথে সমাধান করে এমন প্রমিস।

register()

browser.userScripts.register(
  scripts: RegisteredUserScript[],
)
: Promise<void>

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

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

  • স্ক্রিপ্ট

    রেজিস্টার করার জন্য ব্যবহারকারীর স্ক্রিপ্টের তালিকা রয়েছে।

রিটার্ন

  • <void> প্রমিস

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

resetWorldConfiguration()

Chrome 133+ Chrome 148 থেকে browser.*
browser.userScripts.resetWorldConfiguration(
  worldId?: string,
)
: Promise<void>

ব্যবহারকারীর স্ক্রিপ্ট ওয়ার্ল্ডের জন্য কনফিগারেশন রিসেট করে। নির্দিষ্ট আইডি সহ ওয়ার্ল্ডে ইনজেক্ট করা যেকোনও স্ক্রিপ্ট ডিফল্ট ওয়ার্ল্ড কনফিগারেশন ব্যবহার করবে।

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

  • worldId

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

    রিসেট করার জন্য ব্যবহারকারীর স্ক্রিপ্ট ওয়ার্ল্ডের আইডি। বাদ দেওয়া হলে, ডিফল্ট ওয়ার্ল্ডের কনফিগারেশন রিসেট করে।

রিটার্ন

  • <void> প্রমিস

    কনফিগারেশন রিসেট করা হলে প্রমিস রিজলভ হয়।

unregister()

browser.userScripts.unregister(
  filter?: UserScriptFilter,
)
: Promise<void>

এই এক্সটেনশনের জন্য ডাইনামিক্যালি-রেজিস্টার করা সব ব্যবহারকারীর স্ক্রিপ্ট আনরেজিস্টার করে।

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

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

    UserScriptFilter ঐচ্ছিক

    উল্লেখ করা থাকলে, এই পদ্ধতি শুধুমাত্র সেইসব ইউজার স্ক্রিপ্ট অনিবন্ধিত করে যেগুলি এর সাথে মেলে।

রিটার্ন

  • <void> প্রমিস

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

update()

browser.userScripts.update(
  scripts: RegisteredUserScript[],
)
: Promise<void>

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

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

  • স্ক্রিপ্ট

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

রিটার্ন

  • <void> প্রমিস

    স্ক্রিপ্ট সম্পূর্ণভাবে আপডেট হয়ে গেলে প্রমিস রিজলভ হয়ে যায়। কোনও সমস্যা হলে প্রমিস বাতিল করা হবে।