বর্ণনা
Google Chrome এর প্রসঙ্গ মেনুতে আইটেম যোগ করতে chrome.contextMenus
API ব্যবহার করুন। ছবি, হাইপারলিঙ্ক এবং পৃষ্ঠার মতো আপনার প্রসঙ্গ মেনু সংযোজন কোন ধরনের বস্তুতে প্রযোজ্য তা আপনি বেছে নিতে পারেন।
অনুমতি
contextMenus
API ব্যবহার করার জন্য আপনাকে অবশ্যই আপনার এক্সটেনশনের ম্যানিফেস্টে "contextMenus"
অনুমতি ঘোষণা করতে হবে৷ এছাড়াও, আপনার মেনু আইটেমের পাশে প্রদর্শনের জন্য আপনার একটি 16 বাই 16-পিক্সেল আইকন নির্দিষ্ট করা উচিত। যেমন:
{
"name": "My extension",
...
"permissions": [
"contextMenus"
],
"icons": {
"16": "icon-bitty.png",
"48": "icon-small.png",
"128": "icon-large.png"
},
...
}
ধারণা এবং ব্যবহার
প্রসঙ্গ মেনু আইটেমগুলি যেকোন নথিতে (বা একটি নথির মধ্যে ফ্রেমে) উপস্থিত হতে পারে, এমনকি ফাইল:// বা chrome:// URL গুলিও৷ আপনার আইটেমগুলি কোন নথিতে উপস্থিত হতে পারে তা নিয়ন্ত্রণ করতে, আপনি যখন create()
বা update()
পদ্ধতিগুলি কল করেন তখন documentUrlPatterns
ক্ষেত্রটি নির্দিষ্ট করুন৷
আপনি আপনার প্রয়োজন অনুযায়ী অনেকগুলি প্রসঙ্গ মেনু আইটেম তৈরি করতে পারেন, কিন্তু যদি আপনার এক্সটেনশন থেকে একাধিকবার একবারে দৃশ্যমান হয়, Google Chrome স্বয়ংক্রিয়ভাবে সেগুলিকে একটি একক অভিভাবক মেনুতে ভেঙে দেয়৷
উদাহরণ
এই APIটি চেষ্টা করতে, chrome-extension-samples repository থেকে contextMenus API উদাহরণটি ইনস্টল করুন।
প্রকারভেদ
ContextType
একটি মেনুতে বিভিন্ন প্রেক্ষাপট প্রদর্শিত হতে পারে৷ 'সব' নির্দিষ্ট করা 'লঞ্চার' ব্যতীত অন্য সমস্ত প্রসঙ্গগুলির সমন্বয়ের সমতুল্য৷ 'লঞ্চার' প্রসঙ্গ শুধুমাত্র অ্যাপ দ্বারা সমর্থিত এবং লঞ্চার/টাস্কবার/ডক/ইত্যাদিতে অ্যাপ আইকনে ক্লিক করার সময় উপস্থিত প্রসঙ্গ মেনুতে মেনু আইটেম যোগ করতে ব্যবহৃত হয়। বিভিন্ন প্ল্যাটফর্ম একটি লঞ্চার প্রসঙ্গ মেনুতে আসলে কী সমর্থিত তার উপর সীমাবদ্ধতা রাখতে পারে।
এনাম
"সব" "পৃষ্ঠা" "ফ্রেম" "নির্বাচন" "লিঙ্ক" "সম্পাদনাযোগ্য" "ছবি" "ভিডিও" "অডিও" "লঞ্চার" "ব্রাউজার_অ্যাকশন" "পৃষ্ঠা_ক্রিয়া" "কর্ম"
CreateProperties
নতুন প্রসঙ্গ মেনু আইটেমের বৈশিষ্ট্য।
বৈশিষ্ট্য
- চেক করা
বুলিয়ান ঐচ্ছিক
একটি চেকবক্স বা রেডিও বোতামের প্রাথমিক অবস্থা: নির্বাচিতদের জন্য
true
, অনির্বাচিতের জন্যfalse
৷ একটি প্রদত্ত গ্রুপে একবারে শুধুমাত্র একটি রেডিও বোতাম নির্বাচন করা যেতে পারে। - প্রসঙ্গ
[ ContextType , ... ContextType []] ঐচ্ছিক
প্রসঙ্গগুলির তালিকা এই মেনু আইটেমটি প্রদর্শিত হবে।
['page']
ডিফল্ট। - ডকুমেন্ট ইউআরএল প্যাটার্নস
স্ট্রিং[] ঐচ্ছিক
আইটেমটিকে শুধুমাত্র সেই নথি বা ফ্রেমে প্রয়োগ করতে সীমাবদ্ধ করে যার URL প্রদত্ত প্যাটার্নগুলির একটির সাথে মেলে৷ প্যাটার্ন ফরম্যাটের বিস্তারিত জানার জন্য, ম্যাচ প্যাটার্নস দেখুন।
- সক্রিয়
বুলিয়ান ঐচ্ছিক
এই প্রসঙ্গ মেনু আইটেমটি সক্ষম বা অক্ষম কিনা। ডিফল্ট থেকে
true
। - আইডি
স্ট্রিং ঐচ্ছিক
এই আইটেমটিতে বরাদ্দ করার জন্য অনন্য আইডি। ইভেন্ট পেজ জন্য বাধ্যতামূলক. এই এক্সটেনশনের জন্য অন্য আইডি হিসাবে একই হতে পারে না.
- প্যারেন্টআইডি
স্ট্রিং | সংখ্যা ঐচ্ছিক
একটি অভিভাবক মেনু আইটেম আইডি; এটি আইটেমটিকে পূর্বে যোগ করা আইটেমের একটি শিশু করে তোলে।
- targetUrlPatterns
স্ট্রিং[] ঐচ্ছিক
documentUrlPatterns
এর মতো,img
,audio
এবংvideo
ট্যাগেরsrc
অ্যাট্রিবিউট এবংa
href
অ্যাট্রিবিউটের উপর ভিত্তি করে ফিল্টার। - শিরোনাম
স্ট্রিং ঐচ্ছিক
আইটেমটিতে প্রদর্শিত পাঠ্য;
type
separator
না হলে এটি প্রয়োজনীয় । প্রসঙ্গselection
হলে, নির্বাচিত পাঠ্যটি দেখানোর জন্য স্ট্রিংয়ের মধ্যে%s
ব্যবহার করুন। উদাহরণস্বরূপ, যদি এই প্যারামিটারের মান হয় "'%s' থেকে পিগ ল্যাটিনে অনুবাদ করুন" এবং ব্যবহারকারী "কুল" শব্দটি নির্বাচন করেন, নির্বাচনের জন্য প্রসঙ্গ মেনু আইটেমটি হল "শূকর ল্যাটিনে 'কুল' অনুবাদ করুন"। - টাইপ
আইটেম টাইপ ঐচ্ছিক
মেনু আইটেম প্রকার.
normal
থেকে ডিফল্ট। - দৃশ্যমান
বুলিয়ান ঐচ্ছিক
আইটেমটি মেনুতে দৃশ্যমান কিনা।
- অনক্লিক
অকার্যকর ঐচ্ছিক
একটি ফাংশন যা মেনু আইটেম ক্লিক করা হলে ফিরে কল করা হয়। এটি একটি পরিষেবা কর্মীর ভিতরে উপলব্ধ নয়; পরিবর্তে, আপনার
contextMenus.onClicked
এর জন্য একজন শ্রোতা নিবন্ধন করা উচিত।onclick
ফাংশনটি এরকম দেখাচ্ছে:(info: OnClickData, tab: Tab) => {...}
- তথ্য
ক্লিক করা আইটেম সম্পর্কে তথ্য এবং যেখানে ক্লিকটি ঘটেছে সেই প্রসঙ্গে।
- ট্যাব
ট্যাবের বিশদ বিবরণ যেখানে ক্লিকটি ঘটেছে। এই প্যারামিটারটি প্ল্যাটফর্ম অ্যাপের জন্য নেই।
ItemType
মেনু আইটেম প্রকার.
এনাম
"স্বাভাবিক" "চেকবক্স" "রেডিও" "বিভাজক"
OnClickData
একটি প্রসঙ্গ মেনু আইটেম ক্লিক করা হলে তথ্য পাঠানো হয়।
বৈশিষ্ট্য
- চেক করা
বুলিয়ান ঐচ্ছিক
ক্লিক করার পর একটি চেকবক্স বা রেডিও আইটেমের অবস্থা নির্দেশ করে একটি পতাকা৷
- সম্পাদনাযোগ্য
বুলিয়ান
উপাদান সম্পাদনাযোগ্য কিনা তা নির্দেশ করে একটি পতাকা (টেক্সট ইনপুট, টেক্সটেরিয়া, ইত্যাদি)।
- ফ্রেমআইডি
সংখ্যা ঐচ্ছিক
Chrome 51+এলিমেন্টের ফ্রেমের আইডি যেখানে কনটেক্সট মেনু ক্লিক করা হয়েছে, যদি এটি একটি ফ্রেমে থাকে।
- ফ্রেম ইউআরএল
স্ট্রিং ঐচ্ছিক
উপাদানটির ফ্রেমের URL যেখানে প্রসঙ্গ মেনুতে ক্লিক করা হয়েছে, যদি এটি একটি ফ্রেমে থাকে।
- linkUrl
স্ট্রিং ঐচ্ছিক
যদি উপাদানটি একটি লিঙ্ক হয়, তাহলে এটি যে URLটি নির্দেশ করে।
- মিডিয়া টাইপ
স্ট্রিং ঐচ্ছিক
'ইমেজ', 'ভিডিও' বা 'অডিও'-এর মধ্যে একটি যদি এই ধরনের উপাদানগুলির একটিতে প্রসঙ্গ মেনু সক্রিয় করা হয়।
স্ট্রিং | সংখ্যা
ক্লিক করা মেনু আইটেমের আইডি।
- pageUrl
স্ট্রিং ঐচ্ছিক
পৃষ্ঠার URL যেখানে মেনু আইটেমটি ক্লিক করা হয়েছে৷ এই বৈশিষ্ট্যটি সেট করা হয় না যদি ক্লিকটি এমন একটি প্রসঙ্গে ঘটে যেখানে কোনো বর্তমান পৃষ্ঠা নেই, যেমন একটি লঞ্চার প্রসঙ্গ মেনুতে।
- parentMenuItemId
স্ট্রিং | সংখ্যা ঐচ্ছিক
প্যারেন্ট আইডি, যদি থাকে, ক্লিক করা আইটেমের জন্য।
- নির্বাচন পাঠ্য
স্ট্রিং ঐচ্ছিক
প্রসঙ্গ নির্বাচনের জন্য পাঠ্য, যদি থাকে।
- srcUrl
স্ট্রিং ঐচ্ছিক
একটি 'src' URL সহ উপাদানগুলির জন্য উপস্থিত থাকবে৷
- চেক করা হয়েছিল
বুলিয়ান ঐচ্ছিক
ক্লিক করার আগে একটি চেকবক্স বা রেডিও আইটেমের অবস্থা নির্দেশ করে একটি পতাকা৷
বৈশিষ্ট্য
ACTION_MENU_TOP_LEVEL_LIMIT
সর্বোচ্চ সংখ্যক শীর্ষ স্তরের এক্সটেনশন আইটেম যা একটি এক্সটেনশন অ্যাকশন প্রসঙ্গ মেনুতে যোগ করা যেতে পারে৷ এই সীমা অতিক্রম কোনো আইটেম উপেক্ষা করা হবে.
মান
6
পদ্ধতি
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
)
একটি নতুন প্রসঙ্গ মেনু আইটেম তৈরি করে। সৃষ্টির সময় কোনো ত্রুটি দেখা দিলে, সৃষ্টি কলব্যাক ফায়ার না হওয়া পর্যন্ত এটি সনাক্ত করা যাবে না; বিস্তারিত runtime.lastError
এ থাকবে।
পরামিতি
- বৈশিষ্ট্য তৈরি করুন
- কলব্যাক
ফাংশন ঐচ্ছিক
callback
প্যারামিটারটি এর মতো দেখাচ্ছে:() => void
রিটার্নস
সংখ্যা | স্ট্রিং
নতুন তৈরি আইটেম আইডি.
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
callback?: function,
)
একটি প্রসঙ্গ মেনু আইটেম সরিয়ে দেয়।
পরামিতি
স্ট্রিং | সংখ্যা
সরানোর জন্য প্রসঙ্গ মেনু আইটেমের আইডি।
- কলব্যাক
ফাংশন ঐচ্ছিক
callback
প্যারামিটারটি এর মতো দেখাচ্ছে:() => void
রিটার্নস
প্রতিশ্রুতি <void>
Chrome 123+প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।
removeAll()
chrome.contextMenus.removeAll(
callback?: function,
)
এই এক্সটেনশন দ্বারা যোগ করা সমস্ত প্রসঙ্গ মেনু আইটেম সরিয়ে দেয়।
পরামিতি
- কলব্যাক
ফাংশন ঐচ্ছিক
callback
প্যারামিটারটি এর মতো দেখাচ্ছে:() => void
রিটার্নস
প্রতিশ্রুতি <void>
Chrome 123+প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
callback?: function,
)
পূর্বে তৈরি করা প্রসঙ্গ মেনু আইটেম আপডেট করে।
পরামিতি
- আইডি
স্ট্রিং | সংখ্যা
আইটেমের আইডি আপডেট করতে হবে।
- আপডেট প্রোপার্টি
বস্তু
বৈশিষ্ট্য আপডেট করার জন্য.
contextMenus.create
ফাংশন হিসাবে একই মান গ্রহণ করে।- চেক করা
বুলিয়ান ঐচ্ছিক
- প্রসঙ্গ
[ ContextType , ... ContextType []] ঐচ্ছিক
- ডকুমেন্ট ইউআরএল প্যাটার্নস
স্ট্রিং[] ঐচ্ছিক
- সক্রিয়
বুলিয়ান ঐচ্ছিক
- প্যারেন্টআইডি
স্ট্রিং | সংখ্যা ঐচ্ছিক
আইটেমের আইডি এই আইটেমটির অভিভাবক করা হবে। দ্রষ্টব্য: আপনি একটি আইটেমকে তার নিজের বংশধরের সন্তান হওয়ার জন্য সেট করতে পারবেন না।
- targetUrlPatterns
স্ট্রিং[] ঐচ্ছিক
- শিরোনাম
স্ট্রিং ঐচ্ছিক
- টাইপ
আইটেম টাইপ ঐচ্ছিক
- দৃশ্যমান
বুলিয়ান ঐচ্ছিক
Chrome 62+আইটেমটি মেনুতে দৃশ্যমান কিনা।
- অনক্লিক
অকার্যকর ঐচ্ছিক
onclick
ফাংশনটি এরকম দেখাচ্ছে:(info: OnClickData, tab: Tab) => {...}
- তথ্যChrome 44+
- ট্যাবChrome 44+
ট্যাবের বিশদ বিবরণ যেখানে ক্লিকটি ঘটেছে। এই প্যারামিটারটি প্ল্যাটফর্ম অ্যাপের জন্য নেই।
- কলব্যাক
ফাংশন ঐচ্ছিক
callback
প্যারামিটারটি এর মতো দেখাচ্ছে:() => void
রিটার্নস
প্রতিশ্রুতি <void>
Chrome 123+প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।
ঘটনা
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
একটি প্রসঙ্গ মেনু আইটেম ক্লিক করা হলে বহিস্কার করা হয়।
পরামিতি
- কলব্যাক
ফাংশন
callback
প্যারামিটারটি এর মতো দেখাচ্ছে:(info: OnClickData, tab?: tabs.Tab) => void
- তথ্য
- ট্যাব
ট্যাব। ট্যাব ঐচ্ছিক