বিবরণ
Google Chrome-এর প্রাসঙ্গিক মেনুতে আইটেম যোগ করতে chrome.contextMenus API ব্যবহার করুন। আপনার সংশ্লিষ্ট মেনু যোগ করার সুবিধা কোন ধরনের অবজেক্টে প্রযোজ্য হবে তা বেছে নিতে পারবেন, যেমন ছবি, হাইপারলিঙ্ক এবং পৃষ্ঠা।
অনুমতি
contextMenusAPI ব্যবহার করার জন্য আপনার এক্সটেনশনের ম্যানিফেস্টে "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
একটি মেনু বিভিন্ন প্রসঙ্গে দেখা যেতে পারে। 'সব' উল্লেখ করার অর্থ হল 'লঞ্চার' ও 'ট্যাব' ছাড়া অন্য সব প্রসঙ্গের কম্বিনেশন। 'লঞ্চার' কন্টেক্সট শুধুমাত্র অ্যাপের ক্ষেত্রে কাজ করে এবং লঞ্চার/টাস্কবার/ডক/ইত্যাদিতে অ্যাপ আইকনে ক্লিক করলে যে কন্টেক্সট মেনু দেখা যায়, তাতে মেনু আইটেম যোগ করতে এটি ব্যবহার করা হয়। লঞ্চার কন্টেক্সট মেনুতে আসলে কী কাজ করবে, তার উপর বিভিন্ন প্ল্যাটফর্ম সীমাবদ্ধতা আরোপ করতে পারে।
Enum
"সব"
"পৃষ্ঠা"
"ফ্রেম"
"বেছে নেওয়া"
"লিঙ্ক"
"এডিট করা যাবে"
"ছবি"
"ভিডিও"
"অডিও"
"লঞ্চার"
"action"
এক্সটেনশনের অ্যাকশনের (এর টুলবার আইকন) প্রাসঙ্গিক মেনুতে প্রযোজ্য হয়।
"ট্যাব"
ট্যাব স্ট্রিপে কোনও ট্যাবের প্রাসঙ্গিক মেনুতে প্রযোজ্য।
CreateProperties
নতুন প্রাসঙ্গিক মেনু আইটেমের প্রপার্টি।
প্রপার্টি
-
টিকচিহ্ন দেওয়া আছে
বুলিয়ান ঐচ্ছিক
চেকবক্স বা রেডিও বাটনের প্রাথমিক অবস্থা: বেছে নেওয়ার জন্য
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
মেনু আইটেমের ধরন।
Enum
"স্বাভাবিক"
"চেকবক্স"
"রেডিও"
"সেপারেটর"
OnClickData
কোনও প্রাসঙ্গিক মেনু আইটেমে ক্লিক করা হলে তথ্য পাঠানো হয়।
প্রপার্টি
-
টিকচিহ্ন দেওয়া আছে
বুলিয়ান ঐচ্ছিক
ক্লিক করার পরে চেকবক্স বা রেডিও আইটেমের স্ট্যাটাস নির্দেশ করার ফ্ল্যাগ।
-
এডিট করা যাবে
বুলিয়ান
এলিমেন্টটি এডিট করা যাবে কিনা (টেক্সট ইনপুট, টেক্সট এরিয়া ইত্যাদি) তা ইঙ্গিত করার ফ্ল্যাগ।
-
frameId
নম্বর ঐচ্ছিক
Chrome 51+ browser.* Chrome 148 থেকেএলিমেন্টের ফ্রেমের আইডি যেখানে প্রাসঙ্গিক মেনু ক্লিক করা হয়েছে, যদি এটি ফ্রেমে থাকে।
-
frameUrl
স্ট্রিং ঐচ্ছিক
এলিমেন্টের ফ্রেমের URL যেখানে প্রসঙ্গ মেনু ক্লিক করা হয়েছিল, যদি এটি একটি ফ্রেমে থাকে।
-
linkUrl
স্ট্রিং ঐচ্ছিক
এলিমেন্টটি কোনও লিঙ্ক হলে, এটি যে URL-কে নির্দেশ করে।
-
mediaType
স্ট্রিং ঐচ্ছিক
'ছবি', 'ভিডিও' বা 'অডিও'-এর মধ্যে কোনও একটি, যদি এই ধরনের এলিমেন্টের মধ্যে কোনও একটিতে কন্টেক্সট মেনু অ্যাক্টিভেট করা হয়।
-
স্ট্রিং | সংখ্যা
ক্লিক করা মেনু আইটেমের আইডি।
-
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>
সংশ্লিষ্ট মেনু আইটেম সরিয়ে দেয়।
প্যারামিটারগুলি
-
স্ট্রিং | সংখ্যা
সংশ্লিষ্ট মেনু আইটেমের আইডি সরিয়ে দিতে হবে।
রিটার্ন
-
<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
-
তথ্য
-
ট্যাব
tabs.Tab ঐচ্ছিক
-