browser.contextMenus

বিবরণ

Google Chrome-এর প্রাসঙ্গিক মেনুতে আইটেম যোগ করতে chrome.contextMenus API ব্যবহার করুন। আপনার সংশ্লিষ্ট মেনু যোগ করার সুবিধা কোন ধরনের অবজেক্টে প্রযোজ্য হবে তা বেছে নিতে পারবেন, যেমন ছবি, হাইপারলিঙ্ক এবং পৃষ্ঠা।

অনুমতি

contextMenus

API ব্যবহার করার জন্য আপনার এক্সটেনশনের ম্যানিফেস্টে "contextMenus" অনুমতি ঘোষণা করতে হবে। এছাড়াও, আপনার মেনু আইটেমের পাশে দেখানোর জন্য আপনাকে ১৬ বাই ১৬ পিক্সেলের আইকন নির্দিষ্ট করতে হবে। যেমন:

{
  "name": "My extension",
  ...
  "permissions": [
    "contextMenus"
  ],
  "icons": {
    "16": "icon-bitty.png",
    "48": "icon-small.png",
    "128": "icon-large.png"
  },
  ...
}

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

সংশ্লিষ্ট মেনু আইটেম যেকোনও ডকুমেন্টে (বা ডকুমেন্টের মধ্যে ফ্রেমে) দেখা যেতে পারে, এমনকি file:// বা chrome:// URL-এর সাথেও। আপনার আইটেম কোন ডকুমেন্টে দেখা যেতে পারে তা কন্ট্রোল করতে, create() বা update() মেথড কল করার সময় documentUrlPatterns ফিল্ড নির্দিষ্ট করুন।

আপনি যতগুলি প্রয়োজন ততগুলি সংশ্লিষ্ট মেনু আইটেম তৈরি করতে পারবেন, তবে আপনার এক্সটেনশন থেকে একাধিক আইটেম একসাথে দেখা গেলে, Google Chrome অটোমেটিক সেগুলিকে একটি মূল মেনুতে সঙ্কুচিত করে দেয়।

এই পৃষ্ঠার বেশিরভাগ অংশে এই API-এর মেম্বারদের জন্য রেফারেন্স তথ্য রয়েছে। API ব্যবহার করার নির্দেশাবলীর জন্য, সংশ্লিষ্ট মেনু তৈরি করুন দেখুন।

উদাহরণ

এই API ব্যবহার করে দেখতে, chrome-extension-samples রিপোজিটরি থেকে contextMenus API-এর উদাহরণ ইনস্টল করুন।

ধরন

ContextType

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

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

Enum

"সব"

"পৃষ্ঠা"

"ফ্রেম"

"বেছে নেওয়া"

"লিঙ্ক"

"এডিট করা যাবে"

"ছবি"

"ভিডিও"

"অডিও"

"লঞ্চার"

"action"
এক্সটেনশনের অ্যাকশনের (এর টুলবার আইকন) প্রাসঙ্গিক মেনুতে প্রযোজ্য হয়।

"ট্যাব"
ট্যাব স্ট্রিপে কোনও ট্যাবের প্রাসঙ্গিক মেনুতে প্রযোজ্য।

CreateProperties

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

নতুন প্রাসঙ্গিক মেনু আইটেমের প্রপার্টি।

প্রপার্টি

  • টিকচিহ্ন দেওয়া আছে

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

    চেকবক্স বা রেডিও বাটনের প্রাথমিক অবস্থা: বেছে নেওয়ার জন্য true, বেছে না নেওয়ার জন্য false। প্রদত্ত গ্রুপে একবারে শুধুমাত্র একটি রেডিও বোতাম বেছে নেওয়া যাবে।

  • প্রসঙ্গ

    [ContextType, ...ContextType[]] ঐচ্ছিক

    এই মেনু আইটেমটি যে সব প্রসঙ্গে দেখা যাবে তার তালিকা। ডিফল্ট হিসেবে ['page'] সেট করা থাকে।

  • documentUrlPatterns

    string[] ঐচ্ছিক

    আইটেমটি শুধুমাত্র সেইসব ডকুমেন্ট বা ফ্রেমের ক্ষেত্রে প্রযোজ্য হবে যাদের URL প্রদত্ত প্যাটার্নের সাথে মেলে। প্যাটার্ন ফর্ম্যাট সম্পর্কে আরও জানতে, প্যাটার্ন ম্যাচ করা দেখুন।

  • সক্ষমিত

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

    এই প্রাসঙ্গিক মেনু আইটেম চালু নাকি বন্ধ করা আছে। ডিফল্ট হিসেবে true সেট করা থাকে।

  • id

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

    এই আইটেমে অ্যাসাইন করার জন্য অনন্য আইডি। ইভেন্ট পৃষ্ঠার জন্য বাধ্যতামূলক। এই এক্সটেনশনের জন্য অন্য আইডির মতো একই হতে পারবে না।

  • parentId

    স্ট্রিং | নম্বর ঐচ্ছিক

    মূল মেনু আইটেমের আইডি; এটি আইটেমটিকে আগে যোগ করা আইটেমের সাব-আইটেম করে তোলে।

  • targetUrlPatterns

    string[] ঐচ্ছিক

    documentUrlPatterns-এর মতো, img, audio ও video ট্যাগের src অ্যাট্রিবিউট এবং a ট্যাগের href অ্যাট্রিবিউটের উপর ভিত্তি করে ফিল্টার করা হয়।

  • শীর্ষক

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

    আইটেমে দেখানোর জন্য টেক্সট; type, separator না হলে এটি প্রয়োজন। কন্টেক্সট selection হলে, বেছে নেওয়া টেক্সট দেখানোর জন্য স্ট্রিংয়ের মধ্যে %s ব্যবহার করুন। যেমন, এই প্যারামিটারের ভ্যালু যদি "'%s' পিগ ল্যাটিনে অনুবাদ করুন" হয় এবং ব্যবহারকারী "cool" শব্দটি বেছে নেন, তাহলে বেছে নেওয়া আইটেমের জন্য প্রাসঙ্গিক মেনু আইটেম হল "'cool' পিগ ল্যাটিনে অনুবাদ করুন"।

  • ধরন

    ItemType ঐচ্ছিক

    মেনু আইটেমের ধরন। ডিফল্ট হিসেবে normal সেট করা থাকে।

  • দৃশ্যমান

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

    আইটেমটি মেনুতে দেখা যাচ্ছে কিনা।

  • onclick

    void ঐচ্ছিক

    মেনু আইটেমে ক্লিক করা হলে একটি ফাংশন কলব্যাক করা হয়। এটি কোনও সার্ভিস ওয়ার্কারের মধ্যে উপলভ্য নয়; এর পরিবর্তে, আপনাকে contextMenus.onClicked-এর জন্য লিসেনার রেজিস্টার করতে হবে।

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

    (info: OnClickData, tab: Tab) => {...}

    • তথ্য

      ক্লিক করা আইটেম এবং যে প্রসঙ্গে ক্লিক করা হয়েছে সেই সম্পর্কে তথ্য।

    • ট্যাব

      যে ট্যাবে ক্লিক করা হয়েছে সেটির বিবরণ। প্ল্যাটফর্ম অ্যাপের জন্য এই প্যারামিটার নেই।

ItemType

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

মেনু আইটেমের ধরন।

Enum

"স্বাভাবিক"

"চেকবক্স"

"রেডিও"

"সেপারেটর"

OnClickData

কোনও প্রাসঙ্গিক মেনু আইটেমে ক্লিক করা হলে তথ্য পাঠানো হয়।

প্রপার্টি

  • টিকচিহ্ন দেওয়া আছে

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

    ক্লিক করার পরে চেকবক্স বা রেডিও আইটেমের স্ট্যাটাস নির্দেশ করার ফ্ল্যাগ।

  • এডিট করা যাবে

    বুলিয়ান

    এলিমেন্টটি এডিট করা যাবে কিনা (টেক্সট ইনপুট, টেক্সট এরিয়া ইত্যাদি) তা ইঙ্গিত করার ফ্ল্যাগ।

  • frameId

    নম্বর ঐচ্ছিক

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

    এলিমেন্টের ফ্রেমের আইডি যেখানে প্রাসঙ্গিক মেনু ক্লিক করা হয়েছে, যদি এটি ফ্রেমে থাকে।

  • frameUrl

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

    এলিমেন্টের ফ্রেমের URL যেখানে প্রসঙ্গ মেনু ক্লিক করা হয়েছিল, যদি এটি একটি ফ্রেমে থাকে।

  • linkUrl

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

    এলিমেন্টটি কোনও লিঙ্ক হলে, এটি যে URL-কে নির্দেশ করে।

  • mediaType

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

    'ছবি', 'ভিডিও' বা 'অডিও'-এর মধ্যে কোনও একটি, যদি এই ধরনের এলিমেন্টের মধ্যে কোনও একটিতে কন্টেক্সট মেনু অ্যাক্টিভেট করা হয়।

  • menuItemId

    স্ট্রিং | সংখ্যা

    ক্লিক করা মেনু আইটেমের আইডি।

  • pageUrl

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

    যে পৃষ্ঠায় মেনু আইটেম ক্লিক করা হয়েছে সেটির URL। বর্তমান পৃষ্ঠা নেই এমন কোনও প্রসঙ্গে ক্লিক করা হলে এই প্রপার্টি সেট করা হয় না, যেমন লঞ্চার প্রসঙ্গ মেনু।

  • parentMenuItemId

    স্ট্রিং | নম্বর ঐচ্ছিক

    ক্লিক করা আইটেমের পেরেন্ট আইডি, যদি থাকে।

  • selectionText

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

    প্রসঙ্গ বেছে নেওয়ার জন্য টেক্সট, যদি থাকে।

  • srcUrl

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

    'src' URL সহ এলিমেন্টের জন্য উপস্থিত থাকবে।

  • wasChecked

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

    ক্লিক করার আগে চেকবক্স বা রেডিও আইটেমের স্ট্যাটাস নির্দেশ করার ফ্ল্যাগ।

প্রপার্টি

ACTION_MENU_TOP_LEVEL_LIMIT

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

ভ্যালু

৬

পদ্ধতি

create()

browser.contextMenus.create(
  createProperties: CreateProperties,
  callback?: function,
)
: number | string

নতুন প্রাসঙ্গিক মেনু আইটেম তৈরি করে। তৈরি করার সময় কোনও সমস্যা হলে, তৈরি করার কলব্যাক ফায়ার না হওয়া পর্যন্ত এটি শনাক্ত করা নাও যেতে পারে; বিবরণ runtime.lastError-এ থাকবে।

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

  • createProperties
  • কলব্যাক

    ফাংশন ঐচ্ছিক

    callback প্যারামিটারটি দেখতে এইরকম:

    () => void

রিটার্ন

  • সংখ্যা | স্ট্রিং

    নতুন তৈরি করা আইটেমের আইডি।

remove()

browser.contextMenus.remove(
  menuItemId: string | number,
)
: Promise<void>

সংশ্লিষ্ট মেনু আইটেম সরিয়ে দেয়।

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

  • menuItemId

    স্ট্রিং | সংখ্যা

    সংশ্লিষ্ট মেনু আইটেমের আইডি সরিয়ে দিতে হবে।

রিটার্ন

  • <void> প্রমিস

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

    কন্টেক্সট মেনু সরিয়ে দেওয়া হলে সমাধান হয়ে যায়।

removeAll()

browser.contextMenus.removeAll(): Promise<void>

এই এক্সটেনশনের মাধ্যমে যোগ করা সমস্ত প্রসঙ্গ মেনু আইটেম সরিয়ে দেয়।

রিটার্ন

  • <void> প্রমিস

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

    সরিয়ে দেওয়ার কাজ সম্পূর্ণ হলে সমস্যার সমাধান হয়ে যায়।

update()

browser.contextMenus.update(
  id: string | number,
  updateProperties: object,
)
: Promise<void>

আগে তৈরি করা সংশ্লিষ্ট মেনু আইটেম আপডেট করে।

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

  • id

    স্ট্রিং | সংখ্যা

    যে আইটেম আপডেট করতে হবে সেটির আইডি।

  • updateProperties

    অবজেক্ট

    আপডেট করার জন্য প্রপার্টি। contextMenus.create ফাংশনের মতো একই ভ্যালু গ্রহণ করে।

    • টিকচিহ্ন দেওয়া আছে

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

    • প্রসঙ্গ

      [ContextType, ...ContextType[]] ঐচ্ছিক

    • documentUrlPatterns

      string[] ঐচ্ছিক

    • সক্ষমিত

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

    • parentId

      স্ট্রিং | নম্বর ঐচ্ছিক

      এই আইটেমের পেরেন্ট হিসেবে তৈরি করার জন্য আইটেমের আইডি। মনে রাখবেন: আপনি কোনও আইটেমকে তার নিজের ডিসেন্ডেন্টের চাইল্ড হিসেবে সেট করতে পারবেন না।

    • targetUrlPatterns

      string[] ঐচ্ছিক

    • শীর্ষক

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

    • ধরন

      ItemType ঐচ্ছিক

    • দৃশ্যমান

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

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

      আইটেমটি মেনুতে দেখা যাচ্ছে কিনা।

    • onclick

      void ঐচ্ছিক

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

      (info: OnClickData, tab: Tab) => {...}

      • তথ্য
        Chrome 44+ Chrome 148 থেকে browser.*
      • ট্যাব
        Chrome 44+ Chrome 148 থেকে browser.*

        যে ট্যাবে ক্লিক করা হয়েছে সেটির বিবরণ। প্ল্যাটফর্ম অ্যাপের জন্য এই প্যারামিটার নেই।

রিটার্ন

  • <void> প্রমিস

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

    কন্টেক্সট মেনু আপডেট করা হলে সমাধান হয়ে যায়।

ইভেন্ট

onClicked

browser.contextMenus.onClicked.addListener(
  callback: function,
)

কোনও প্রাসঙ্গিক মেনু আইটেমে ক্লিক করা হলে ফায়ার করা হয়।

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

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (info: OnClickData, tab?: tabs.Tab) => void