বর্ণনা
পৃষ্ঠার বিষয়বস্তু পড়ার অনুমতি ছাড়াই একটি পৃষ্ঠার বিষয়বস্তুর উপর নির্ভর করে পদক্ষেপ নিতে chrome.declarativeContent API ব্যবহার করুন।
অনুমতি
declarativeContentধারণা এবং ব্যবহার
ঘোষণামূলক বিষয়বস্তু API আপনাকে একটি ওয়েব পৃষ্ঠার URL-এর উপর নির্ভর করে আপনার এক্সটেনশনের অ্যাকশন সক্ষম করতে দেয়, অথবা যদি একটি CSS নির্বাচক পৃষ্ঠার একটি উপাদানের সাথে মেলে, হোস্টের অনুমতি যোগ করার বা একটি সামগ্রী স্ক্রিপ্ট ইনজেক্ট করার প্রয়োজন ছাড়াই৷
ব্যবহারকারী এক্সটেনশনের অ্যাকশনে ক্লিক করার পরে একটি পৃষ্ঠার সাথে ইন্টারঅ্যাক্ট করতে সক্রিয় ট্যাব অনুমতি ব্যবহার করুন।
নিয়ম
নিয়ম শর্ত এবং কর্ম নিয়ে গঠিত। শর্তগুলির মধ্যে যেকোনটি পূরণ করা হলে, সমস্ত কর্ম সম্পাদন করা হয়। ক্রিয়াগুলি হল setIcon() এবং showAction() ।
PageStateMatcher ওয়েব পৃষ্ঠাগুলির সাথে মেলে যদি এবং শুধুমাত্র যদি সমস্ত তালিকাভুক্ত মানদণ্ড পূরণ করা হয়। এটি একটি পৃষ্ঠার url , একটি CSS যৌগ নির্বাচক বা একটি পৃষ্ঠার বুকমার্ক করা অবস্থার সাথে মেলে। একটি পাসওয়ার্ড ক্ষেত্র উপস্থিত থাকলে নিম্নলিখিত নিয়মটি Google পৃষ্ঠাগুলিতে এক্সটেনশনের ক্রিয়াকে সক্ষম করে:
let rule1 = {
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { hostSuffix: '.google.com', schemes: ['https'] },
css: ["input[type='password']"]
})
],
actions: [ new chrome.declarativeContent.ShowAction() ]
};
একটি ভিডিও সহ Google সাইটগুলির জন্য এক্সটেনশনের ক্রিয়া সক্রিয় করতে, আপনি একটি দ্বিতীয় শর্ত যোগ করতে পারেন, কারণ প্রতিটি শর্ত সমস্ত নির্দিষ্ট ক্রিয়াগুলিকে ট্রিগার করার জন্য যথেষ্ট:
let rule2 = {
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { hostSuffix: '.google.com', schemes: ['https'] },
css: ["input[type='password']"]
}),
new chrome.declarativeContent.PageStateMatcher({
css: ["video"]
})
],
actions: [ new chrome.declarativeContent.ShowAction() ]
};
onPageChanged ইভেন্ট পরীক্ষা করে যে কোনো নিয়মের অন্তত একটি পূর্ণ শর্ত আছে কি না এবং ক্রিয়া সম্পাদন করে। ব্রাউজিং সেশন জুড়ে নিয়ম বজায় থাকে; তাই, এক্সটেনশন ইন্সটলেশনের সময় আপনাকে প্রথমে removeRules ব্যবহার করতে হবে পূর্বে ইনস্টল করা নিয়মগুলি সাফ করতে এবং তারপরে নতুনগুলি নিবন্ধন করতে addRules ব্যবহার করতে হবে।
chrome.runtime.onInstalled.addListener(function(details) {
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
chrome.declarativeContent.onPageChanged.addRules([rule2]);
});
});
ActiveTab অনুমতির সাথে, আপনার এক্সটেনশন কোনো অনুমতি সতর্কতা প্রদর্শন করবে না এবং ব্যবহারকারী যখন এক্সটেনশন অ্যাকশনে ক্লিক করবে, তখন এটি শুধুমাত্র প্রাসঙ্গিক পৃষ্ঠাগুলিতে চলবে।
পৃষ্ঠার ইউআরএল মিলছে
URL মানদণ্ড পূরণ হলে PageStateMatcher.pageurl মেলে। সবচেয়ে সাধারণ মানদণ্ড হল হোস্ট, পাথ বা ইউআরএল-এর সংমিশ্রণ, তারপরে ধারণ, সমান, উপসর্গ বা প্রত্যয়। নিম্নলিখিত সারণীতে কয়েকটি উদাহরণ রয়েছে:
| মানদণ্ড | মেলে |
|---|---|
{ hostSuffix: 'google.com' } | সমস্ত Google URL |
{ pathPrefix: '/docs/extensions' } | এক্সটেনশন ডক্স URLs |
{ urlContains: 'developer.chrome.com' } | সমস্ত ক্রোম ডেভেলপার ডক্স ইউআরএল |
সমস্ত মানদণ্ড কেস সংবেদনশীল। মানদণ্ডের সম্পূর্ণ তালিকার জন্য, UrlFilter দেখুন।
CSS ম্যাচিং
PageStateMatcher.css শর্তগুলি অবশ্যই যৌগিক নির্বাচক হতে হবে, যার অর্থ হল আপনি আপনার নির্বাচকদের মধ্যে হোয়াইটস্পেস বা " > " এর মতো সমন্বয়কারীকে অন্তর্ভুক্ত করতে পারবেন না৷ এটি ক্রোমকে নির্বাচকদের সাথে আরও দক্ষতার সাথে মেলাতে সাহায্য করে৷
| যৌগ নির্বাচক (ঠিক আছে) | জটিল নির্বাচক (ঠিক নয়) |
|---|---|
a | div p |
iframe.special[src^='http'] | p>span.highlight |
ns|* | p + ol |
#abcd:checked | p::first-line |
CSS শর্তগুলি শুধুমাত্র প্রদর্শিত উপাদানগুলির সাথে মেলে: যদি আপনার নির্বাচকের সাথে মেলে এমন একটি উপাদান display:none বা এর মূল উপাদানগুলির একটি হল display:none , এটি শর্তের সাথে মেলে না। visibility:hidden , অফ-স্ক্রীনে অবস্থান করা, বা অন্যান্য উপাদানগুলির দ্বারা লুকানো এখনও আপনার অবস্থার সাথে মিল রাখতে পারে৷
বুকমার্ক করা রাজ্যের মিল
PageStateMatcher.isBookmarked শর্ত ব্যবহারকারীর প্রোফাইলে বর্তমান URL-এর বুকমার্ক করা অবস্থার সাথে মিলিত হওয়ার অনুমতি দেয়৷ এই শর্তটি ব্যবহার করতে "বুকমার্ক" অনুমতি অবশ্যই এক্সটেনশন ম্যানিফেস্টে ঘোষণা করতে হবে৷
প্রকারভেদ
ImageDataType
https://developer.mozilla.org/en-US/docs/Web/API/ImageData দেখুন।
টাইপ
ইমেজ ডেটা
PageStateMatcher
বিভিন্ন মানদণ্ডের উপর ভিত্তি করে একটি ওয়েব পৃষ্ঠার অবস্থার সাথে মেলে।
বৈশিষ্ট্য
- নির্মাণকারী
অকার্যকর
constructorফাংশনটি এর মত দেখাচ্ছে:(arg: PageStateMatcher) => {...}
- arg
- রিটার্ন
- css
স্ট্রিং[] ঐচ্ছিক
অ্যারের সমস্ত CSS নির্বাচক যদি পৃষ্ঠার মূল ফ্রেমের মতো একই মূলের সাথে একটি ফ্রেমে প্রদর্শিত উপাদানের সাথে মেলে। এই অ্যারের সমস্ত নির্বাচককে অবশ্যই যৌগিক নির্বাচক হতে হবে যাতে মিলের গতি বাড়ানো যায়। দ্রষ্টব্য: শত শত CSS নির্বাচকদের তালিকাভুক্ত করা বা প্রতি পৃষ্ঠায় শত শত বার মেলে এমন CSS নির্বাচকদের তালিকা করা ওয়েব সাইটকে ধীর করে দিতে পারে।
- বুকমার্ক করা আছে
বুলিয়ান ঐচ্ছিক
Chrome 45+পৃষ্ঠার বুকমার্ক করা অবস্থা নির্দিষ্ট মানের সমান হলে মেলে। বুকমার্ক অনুমতি প্রয়োজন.
- pageUrl
UrlFilter ঐচ্ছিক
পৃষ্ঠার শীর্ষ-স্তরের URL-এর জন্য
UrlFilterএর শর্ত পূরণ করা হলে মেলে।
RequestContentScript
ঘোষণামূলক ইভেন্ট অ্যাকশন যা একটি বিষয়বস্তু স্ক্রিপ্ট ইনজেক্ট করে।
সতর্কতা: এই ক্রিয়াটি এখনও পরীক্ষামূলক এবং Chrome এর স্থিতিশীল বিল্ডগুলিতে সমর্থিত নয়৷
বৈশিষ্ট্য
- নির্মাণকারী
অকার্যকর
constructorফাংশনটি এর মত দেখাচ্ছে:(arg: RequestContentScript) => {...}
- রিটার্ন
- সব ফ্রেম
বুলিয়ান ঐচ্ছিক
বিষয়বস্তু স্ক্রিপ্ট মিলিত পৃষ্ঠার সমস্ত ফ্রেমে সঞ্চালিত কিনা, বা শুধুমাত্র উপরের ফ্রেমে। ডিফল্ট
false. - css
স্ট্রিং[] ঐচ্ছিক
কন্টেন্ট স্ক্রিপ্টের একটি অংশ হিসাবে সিএসএস ফাইলের নাম ইনজেকশন করা হবে।
- জেএস
স্ট্রিং[] ঐচ্ছিক
জাভাস্ক্রিপ্ট ফাইলের নাম কন্টেন্ট স্ক্রিপ্ট একটি অংশ হিসাবে ইনজেক্ট করা হবে.
- ম্যাচঅবউটব্ল্যাঙ্ক
বুলিয়ান ঐচ্ছিক
about:blankএবংabout:srcdocএ বিষয়বস্তু স্ক্রিপ্ট সন্নিবেশ করা হবে কিনা। ডিফল্টfalse.
SetIcon
ঘোষণামূলক ইভেন্ট অ্যাকশন যা সংশ্লিষ্ট শর্ত পূরণের সময় এক্সটেনশনের পৃষ্ঠা অ্যাকশন বা ব্রাউজার অ্যাকশনের জন্য এন-ডিপ বর্গ আইকন সেট করে। এই ক্রিয়াটি হোস্টের অনুমতি ছাড়াই ব্যবহার করা যেতে পারে, তবে এক্সটেনশনটিতে অবশ্যই একটি পৃষ্ঠা বা ব্রাউজার অ্যাকশন থাকতে হবে৷
imageData বা path একটি ঠিক নির্দিষ্ট করতে হবে। উভয়ই একটি চিত্র উপস্থাপনার জন্য বেশ কয়েকটি পিক্সেলের ম্যাপিং অভিধান। imageData ইমেজ রিপ্রেজেন্টেশন একটি ইমেজডেটা অবজেক্ট; উদাহরণস্বরূপ, একটি canvas উপাদান থেকে, যখন path চিত্র উপস্থাপনাটি এক্সটেনশনের ম্যানিফেস্টের সাথে সম্পর্কিত একটি চিত্র ফাইলের পথ। যদি scale স্ক্রীন পিক্সেলগুলি একটি ডিভাইস-স্বাধীন পিক্সেলের সাথে মানানসই হয়, scale * n আইকন ব্যবহার করা হয়। যদি সেই স্কেলটি অনুপস্থিত থাকে, অন্য একটি চিত্রকে প্রয়োজনীয় আকারে পুনরায় আকার দেওয়া হয়।
বৈশিষ্ট্য
- নির্মাণকারী
অকার্যকর
constructorফাংশনটি এর মত দেখাচ্ছে:(arg: SetIcon) => {...}
- arg
- রিটার্ন
- imageData
ইমেজডেটা | বস্তু ঐচ্ছিক
হয় একটি
ImageDataঅবজেক্ট বা একটি অভিধান {size -> ImageData} সেট করা একটি আইকন প্রতিনিধিত্ব করে৷ যদি আইকনটি একটি অভিধান হিসাবে নির্দিষ্ট করা হয়, ব্যবহৃত চিত্রটি পর্দার পিক্সেল ঘনত্বের উপর নির্ভর করে বেছে নেওয়া হয়। যদি একটি স্ক্রীন স্পেস ইউনিটে ফিট করা ছবির পিক্সেলের সংখ্যাscaleসমান হয়, তাহলে সাইজscale * nসহ একটি চিত্র নির্বাচন করা হয়, যেখানে n হল UI-তে আইকনের আকার। অন্তত একটি ছবি নির্দিষ্ট করা আবশ্যক। উল্লেখ্য যেdetails.imageData = fooহলdetails.imageData = {'16': foo}এর সমতুল্য।
ShowAction
একটি ঘোষণামূলক ইভেন্ট অ্যাকশন যা সংশ্লিষ্ট শর্ত পূরণ করার সময় এক্সটেনশনের টুলবার অ্যাকশনকে একটি সক্রিয় অবস্থায় সেট করে। এই ক্রিয়াটি হোস্টের অনুমতি ছাড়াই ব্যবহার করা যেতে পারে। যদি এক্সটেনশনের ActiveTab অনুমতি থাকে, তাহলে পৃষ্ঠা অ্যাকশনে ক্লিক করলে সক্রিয় ট্যাবে অ্যাক্সেস পাওয়া যায়।
যে পৃষ্ঠাগুলিতে শর্তগুলি পূরণ করা হয় না সেখানে এক্সটেনশনের টুলবার অ্যাকশনটি ধূসর-স্কেল হবে এবং এটিতে ক্লিক করলে ক্রিয়াটি ট্রিগার করার পরিবর্তে প্রসঙ্গ মেনু খুলবে৷
বৈশিষ্ট্য
- নির্মাণকারী
অকার্যকর
constructorফাংশনটি এর মত দেখাচ্ছে:(arg: ShowAction) => {...}
- arg
- রিটার্ন
ShowPageAction
অনুগ্রহ করে declarativeContent.ShowAction ব্যবহার করুন।
একটি ঘোষণামূলক ইভেন্ট অ্যাকশন যা সংশ্লিষ্ট শর্ত পূরণ করার সময় এক্সটেনশনের পৃষ্ঠা অ্যাকশনকে একটি সক্রিয় অবস্থায় সেট করে। এই ক্রিয়াটি হোস্টের অনুমতি ছাড়াই ব্যবহার করা যেতে পারে, তবে এক্সটেনশনের অবশ্যই একটি পৃষ্ঠা ক্রিয়া থাকতে হবে৷ যদি এক্সটেনশনের ActiveTab অনুমতি থাকে, তাহলে পৃষ্ঠা অ্যাকশনে ক্লিক করলে সক্রিয় ট্যাবে অ্যাক্সেস পাওয়া যায়।
যে পৃষ্ঠাগুলিতে শর্তগুলি পূরণ করা হয় না সেখানে এক্সটেনশনের টুলবার অ্যাকশনটি ধূসর-স্কেল হবে এবং এটিতে ক্লিক করলে ক্রিয়াটি ট্রিগার করার পরিবর্তে প্রসঙ্গ মেনু খুলবে৷
বৈশিষ্ট্য
- নির্মাণকারী
অকার্যকর
constructorফাংশনটি এর মত দেখাচ্ছে:(arg: ShowPageAction) => {...}
- arg
- রিটার্ন
ঘটনা
onPageChanged
addRules , removeRules এবং getRules সমন্বিত ঘোষণামূলক ইভেন্ট API প্রদান করে।