বিবরণ
Google Chrome এর প্রসঙ্গ মেনুতে আইটেম যোগ করতে chrome.contextMenus API ব্যবহার করুন। আপনার প্রসঙ্গ মেনু সংযোজন কোন ধরণের বস্তুর উপর প্রযোজ্য হবে তা আপনি বেছে নিতে পারেন, যেমন ছবি, হাইপারলিঙ্ক এবং পৃষ্ঠা।
অনুমতিসমূহ
contextMenus API ব্যবহার করার জন্য আপনাকে অবশ্যই আপনার এক্সটেনশনের ম্যানিফেস্টে "contextMenus" অনুমতি ঘোষণা করতে হবে। এছাড়াও, আপনার মেনু আইটেমের পাশে প্রদর্শনের জন্য একটি 16 x 16-পিক্সেল আইকন নির্দিষ্ট করা উচিত। উদাহরণস্বরূপ:
{
"name": "My extension",
...
"permissions": [
"contextMenus"
],
"icons": {
"16": "icon-bitty.png",
"48": "icon-small.png",
"128": "icon-large.png"
},
...
}
ধারণা এবং ব্যবহার
কনটেক্সট মেনু আইটেমগুলি যেকোনো ডকুমেন্টে (অথবা ডকুমেন্টের ফ্রেমে) দেখা যেতে পারে, এমনকি file:// বা chrome:// URL সহও। আপনার আইটেমগুলি কোন ডকুমেন্টে দেখা যাবে তা নিয়ন্ত্রণ করতে, create() বা update() পদ্ধতিগুলি কল করার সময় documentUrlPatterns ক্ষেত্রটি নির্দিষ্ট করুন।
আপনি যতগুলি প্রয়োজন ততগুলি প্রসঙ্গ মেনু আইটেম তৈরি করতে পারেন, কিন্তু যদি আপনার এক্সটেনশন থেকে একসাথে একাধিক দৃশ্যমান হয়, তাহলে গুগল ক্রোম স্বয়ংক্রিয়ভাবে সেগুলিকে একটি একক অভিভাবক মেনুতে ভেঙে ফেলে।
উদাহরণ
এই API ব্যবহার করে দেখতে, chrome-extension-samples সংগ্রহস্থল থেকে contextMenus API উদাহরণটি ইনস্টল করুন।
প্রকারভেদ
ContextType
একটি মেনু বিভিন্ন প্রেক্ষাপটে উপস্থিত হতে পারে। 'সকল' উল্লেখ করা 'লঞ্চার' ব্যতীত অন্যান্য সকল প্রেক্ষাপটের সংমিশ্রণের সমতুল্য। 'লঞ্চার' প্রেক্ষাপট শুধুমাত্র অ্যাপ দ্বারা সমর্থিত এবং লঞ্চার/টাস্কবার/ডক/ইত্যাদিতে অ্যাপ আইকনে ক্লিক করার সময় প্রদর্শিত প্রেক্ষাপট মেনুতে মেনু আইটেম যোগ করতে ব্যবহৃত হয়। বিভিন্ন প্ল্যাটফর্ম লঞ্চার প্রেক্ষাপট মেনুতে আসলে কী সমর্থিত তার উপর সীমাবদ্ধতা আরোপ করতে পারে।
এনাম
"সব" "পৃষ্ঠা" "ফ্রেম" "নির্বাচন" "লিঙ্ক" "সম্পাদনাযোগ্য" "ছবি" "ভিডিও" "অডিও" "লঞ্চার" "ব্রাউজার_অ্যাকশন" "পৃষ্ঠা_ক্রিয়া" "কর্ম"
CreateProperties
নতুন প্রসঙ্গ মেনু আইটেমের বৈশিষ্ট্য।
বৈশিষ্ট্য
- চেক করা হয়েছে
বুলিয়ান ঐচ্ছিক
একটি চেকবক্স বা রেডিও বোতামের প্রাথমিক অবস্থা: নির্বাচিতের জন্য
true, অনির্বাচিতের জন্যfalse। একটি নির্দিষ্ট গ্রুপে একবারে শুধুমাত্র একটি রেডিও বোতাম নির্বাচন করা যেতে পারে। - প্রেক্ষাপট
[ প্রসঙ্গ প্রকার , ... প্রসঙ্গ প্রকার []] ঐচ্ছিক
এই মেনু আইটেমটি যে প্রসঙ্গে প্রদর্শিত হবে তার তালিকা। ডিফল্টরূপে
['page']। - ডকুমেন্ট ইউআরএলপ্যাটার্নস
স্ট্রিং[] ঐচ্ছিক
আইটেমটি কেবলমাত্র সেইসব ডকুমেন্ট বা ফ্রেমের ক্ষেত্রে প্রযোজ্য হতে সীমাবদ্ধ করে যার URL প্রদত্ত প্যাটার্নগুলির একটির সাথে মেলে। প্যাটার্ন ফর্ম্যাট সম্পর্কে বিস্তারিত জানার জন্য, ম্যাচ প্যাটার্ন দেখুন।
- সক্রিয়
বুলিয়ান ঐচ্ছিক
এই প্রসঙ্গ মেনু আইটেমটি সক্রিয় নাকি অক্ষম। ডিফল্টভাবে
trueথাকে। - আইডি
স্ট্রিং ঐচ্ছিক
এই আইটেমটিতে বরাদ্দ করার জন্য অনন্য আইডি। ইভেন্ট পৃষ্ঠাগুলির জন্য বাধ্যতামূলক। এই এক্সটেনশনের জন্য অন্য আইডির মতো হতে পারে না।
- প্যারেন্ট আইডি
স্ট্রিং | নম্বর ঐচ্ছিক
একটি প্যারেন্ট মেনু আইটেমের আইডি; এটি আইটেমটিকে পূর্বে যোগ করা আইটেমের একটি চাইল্ড করে তোলে।
- টার্গেটইউআরএলপ্যাটার্নস
স্ট্রিং[] ঐচ্ছিক
documentUrlPatternsএর মতোই,img,audio, এবংvideoট্যাগেরsrcঅ্যাট্রিবিউট এবংaট্যাগেরhrefঅ্যাট্রিবিউটের উপর ভিত্তি করে ফিল্টার তৈরি করা হয়। - শিরোনাম
স্ট্রিং ঐচ্ছিক
আইটেমটিতে প্রদর্শিত টেক্সট;
typeseparatorনা হলে এটি প্রয়োজন । যখন প্রসঙ্গটিselectionহয়, তখন নির্বাচিত টেক্সটটি দেখানোর জন্য স্ট্রিংয়ের মধ্যে%sব্যবহার করুন। উদাহরণস্বরূপ, যদি এই প্যারামিটারের মান "Pig Latin-এ '%s' অনুবাদ করুন" হয় এবং ব্যবহারকারী "cool" শব্দটি নির্বাচন করেন, তাহলে নির্বাচনের জন্য প্রসঙ্গ মেনু আইটেমটি "Pig Latin-এ 'cool' অনুবাদ করুন"। - আদর্শ
আইটেম টাইপ ঐচ্ছিক
মেনু আইটেমের ধরণ। ডিফল্ট হিসেবে
normalথাকে। - দৃশ্যমান
বুলিয়ান ঐচ্ছিক
মেনুতে আইটেমটি দৃশ্যমান কিনা।
- অনক্লিক
ঐচ্ছিক বাতিল
একটি ফাংশন যা মেনু আইটেমে ক্লিক করলে আবার কল করা হয়। এটি কোনও পরিষেবা কর্মীর ভিতরে উপলব্ধ নয়; পরিবর্তে, আপনার
contextMenus.onClickedএর জন্য একটি শ্রোতা নিবন্ধন করা উচিত।onclickফাংশনটি দেখতে এরকম দেখাচ্ছে:(info: OnClickData, tab: Tab) => {...}
- তথ্য
ক্লিক করা আইটেম এবং ক্লিকটি কোথায় ঘটেছে তার প্রেক্ষাপট সম্পর্কে তথ্য।
- ট্যাব
যে ট্যাবে ক্লিক করা হয়েছে তার বিবরণ। প্ল্যাটফর্ম অ্যাপের জন্য এই প্যারামিটারটি উপস্থিত নেই।
ItemType
মেনু আইটেমের ধরণ।
এনাম
"স্বাভাবিক" "চেকবক্স" "রেডিও" "বিভাজক"
OnClickData
একটি প্রসঙ্গ মেনু আইটেম ক্লিক করলে তথ্য পাঠানো হয়।
বৈশিষ্ট্য
- চেক করা হয়েছে
বুলিয়ান ঐচ্ছিক
একটি চেকবক্স বা রেডিও আইটেম ক্লিক করার পরে তার অবস্থা নির্দেশ করে এমন একটি পতাকা।
- সম্পাদনাযোগ্য
বুলিয়ান
একটি পতাকা যা নির্দেশ করে যে উপাদানটি সম্পাদনাযোগ্য কিনা (টেক্সট ইনপুট, টেক্সট এরিয়া, ইত্যাদি)।
- ফ্রেম আইডি
সংখ্যা ঐচ্ছিক
ক্রোম ৫১+যে এলিমেন্টে কনটেক্সট মেনুতে ক্লিক করা হয়েছিল, যদি এটি একটি ফ্রেমে থাকে, তাহলে সেই এলিমেন্টের ফ্রেমের আইডি ।
- ফ্রেম ইউআরএল
স্ট্রিং ঐচ্ছিক
যদি এটি একটি ফ্রেমে থাকে, তাহলে যে উপাদানটিতে প্রসঙ্গ মেনুতে ক্লিক করা হয়েছিল, সেই উপাদানের ফ্রেমের URL।
- লিঙ্ক ইউআরএল
স্ট্রিং ঐচ্ছিক
যদি উপাদানটি একটি লিঙ্ক হয়, তাহলে এটি যে URL-এ নির্দেশ করে।
- মিডিয়াটাইপ
স্ট্রিং ঐচ্ছিক
'ছবি', 'ভিডিও', অথবা 'অডিও' এর মধ্যে যেকোনো একটি যদি এই ধরণের উপাদানগুলির মধ্যে একটিতে প্রসঙ্গ মেনু সক্রিয় থাকে।
স্ট্রিং | সংখ্যা
ক্লিক করা মেনু আইটেমের আইডি।
- পৃষ্ঠা ইউআরএল
স্ট্রিং ঐচ্ছিক
যে পৃষ্ঠায় মেনু আইটেমটি ক্লিক করা হয়েছিল তার URL। যদি ক্লিকটি এমন কোনও প্রসঙ্গে ঘটে যেখানে কোনও বর্তমান পৃষ্ঠা নেই, যেমন লঞ্চার প্রসঙ্গ মেনুতে, তাহলে এই বৈশিষ্ট্যটি সেট করা হয় না।
- প্যারেন্টমেনুআইটেমআইডি
স্ট্রিং | নম্বর ঐচ্ছিক
ক্লিক করা আইটেমটির জন্য যদি কোনও প্যারেন্ট আইডি থাকে।
- নির্বাচন পাঠ্য
স্ট্রিং ঐচ্ছিক
প্রসঙ্গ নির্বাচনের জন্য লেখা, যদি থাকে।
- srcUrl সম্পর্কে
স্ট্রিং ঐচ্ছিক
'src' URL সহ উপাদানগুলির জন্য উপস্থিত থাকবে।
- চেক করা হয়েছিল
বুলিয়ান ঐচ্ছিক
একটি চেকবক্স বা রেডিও আইটেম ক্লিক করার আগে তার অবস্থা নির্দেশ করে এমন একটি পতাকা।
বৈশিষ্ট্য
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ফাংশনের মতো একই মান গ্রহণ করে।- চেক করা হয়েছে
বুলিয়ান ঐচ্ছিক
- প্রেক্ষাপট
[ প্রসঙ্গ প্রকার , ... প্রসঙ্গ প্রকার []] ঐচ্ছিক
- ডকুমেন্ট ইউআরএলপ্যাটার্নস
স্ট্রিং[] ঐচ্ছিক
- সক্রিয়
বুলিয়ান ঐচ্ছিক
- প্যারেন্ট আইডি
স্ট্রিং | নম্বর ঐচ্ছিক
এই আইটেমের মূল আইটেম হিসেবে যে আইটেমটি ব্যবহার করা হবে তার আইডি। দ্রষ্টব্য: আপনি কোনও আইটেমকে তার নিজস্ব বংশধরের সন্তান হিসেবে সেট করতে পারবেন না।
- টার্গেটইউআরএলপ্যাটার্নস
স্ট্রিং[] ঐচ্ছিক
- শিরোনাম
স্ট্রিং ঐচ্ছিক
- আদর্শ
আইটেম টাইপ ঐচ্ছিক
- দৃশ্যমান
বুলিয়ান ঐচ্ছিক
ক্রোম ৬২+মেনুতে আইটেমটি দৃশ্যমান কিনা।
- অনক্লিক
ঐচ্ছিক বাতিল
onclickফাংশনটি দেখতে এরকম দেখাচ্ছে:(info: OnClickData, tab: Tab) => {...}
- তথ্যক্রোম ৪৪+
- ট্যাবক্রোম ৪৪+
যে ট্যাবে ক্লিক করা হয়েছে তার বিবরণ। প্ল্যাটফর্ম অ্যাপের জন্য এই প্যারামিটারটি উপস্থিত নেই।
রিটার্নস
প্রতিশ্রুতি<অকার্যকর>
ক্রোম ১২৩+প্রসঙ্গ মেনু আপডেট করা হলে সমাধান হয়।
ইভেন্টগুলি
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
একটি প্রসঙ্গ মেনু আইটেম ক্লিক করলে চালু হয়।
পরামিতি
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(info: OnClickData, tab?: tabs.Tab) => void
- তথ্য
- ট্যাব
ট্যাব। ট্যাব ঐচ্ছিক