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