বিবরণ
বুকমার্ক তৈরি, সাজানো এবং অন্যভাবে ম্যানিপুলেট করতে chrome.bookmarks API ব্যবহার করুন। এছাড়াও, ওভাররাইড পৃষ্ঠা দেখুন, যা আপনি কাস্টম বুকমার্ক ম্যানেজার পৃষ্ঠা তৈরি করতে ব্যবহার করতে পারেন।
অনুমতি
bookmarksবুকমার্ক API ব্যবহার করতে আপনাকে এক্সটেনশন ম্যানিফেস্টে "বুকমার্ক" সংক্রান্ত অনুমতি ঘোষণা করতে হবে। যেমন:
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
ধারণা ও ব্যবহার
অবজেক্ট ও প্রপার্টি
বুকমার্কগুলি একটি ট্রিতে সাজানো হয়, যেখানে ট্রির প্রতিটি নোড হয় একটি বুকমার্ক বা একটি ফোল্ডার (কখনও কখনও একটি গ্রুপ বলা হয়)। ট্রি-এর প্রতিটি নোডকে একটি bookmarks.BookmarkTreeNode অবজেক্ট দ্বারা উপস্থাপন করা হয়।
browser.bookmarks API জুড়ে BookmarkTreeNode প্রপার্টি ব্যবহার করা হয়। যেমন, আপনি যখন
bookmarks.create কল করেন, তখন আপনি নতুন নোডের পেরেন্ট (parentId) এবং বিকল্প হিসেবে
নোডের index, title এবং url প্রপার্টি পাস করেন। একটি নোডের কী কী প্রপার্টি থাকতে পারে সেই সম্পর্কে তথ্য পেতে
bookmarks.BookmarkTreeNode দেখুন।
উদাহরণ
নিম্নলিখিত কোড "এক্সটেনশন বুকমার্ক" শীর্ষক সহ একটি ফোল্ডার তৈরি করে। create()-এর প্রথম আর্গুমেন্ট
নতুন ফোল্ডারের জন্য প্রপার্টি নির্দিষ্ট করে। ফোল্ডার তৈরি হওয়ার পরে যে ফাংশনটি এক্সিকিউট করতে হবে,
দ্বিতীয় আর্গুমেন্ট সেটি নির্ধারণ করে।
browser.bookmarks.create(
{'parentId': bookmarkBar.id, 'title': 'Extension bookmarks'},
function(newFolder) {
console.log("added folder: " + newFolder.title);
},
);
পরবর্তী স্নিপেট এক্সটেনশনের জন্য ডেভেলপার ডকুমেন্টেশন নির্দেশ করে একটি বুকমার্ক তৈরি করে। যেহেতু বুকমার্ক তৈরি করা না গেলেও কোনও ক্ষতি হবে না, তাই এই কোড কোনও কলব্যাক ফাংশন সংজ্ঞায়িত করে না।
browser.bookmarks.create({
'parentId': extensionsFolderId,
'title': 'Extensions doc',
'url': 'https://developer.chrome.com/docs/extensions',
});
এই API ব্যবহার করে দেখতে, chrome-extension-samples রিপোজিটরি থেকে Bookmarks API-এর উদাহরণ ইনস্টল করুন।
ধরন
BookmarkTreeNode
বুকমার্ক ট্রিতে একটি নোড (বুকমার্ক বা ফোল্ডার)। চাইল্ড নোডগুলি তাদের পেরেন্ট ফোল্ডারের মধ্যে সাজানো থাকে।
প্রপার্টি
-
বাচ্চাকে
BookmarkTreeNode[] ঐচ্ছিক
এই নোডের চাইল্ডের ক্রমানুসারে সাজানো তালিকা।
-
dateAdded
নম্বর ঐচ্ছিক
এই নোড কখন তৈরি করা হয়েছে, যুগ (
new Date(dateAdded)) থেকে মিলিসেকেন্ডে। -
dateGroupModified
নম্বর ঐচ্ছিক
এই ফোল্ডারের কন্টেন্ট শেষবার কখন পরিবর্তন করা হয়েছে, যুগ থেকে মিলিসেকেন্ডে।
-
dateLastUsed
নম্বর ঐচ্ছিক
Chrome 114+ Chrome 148 থেকে browser.*এই নোড শেষবার কখন খোলা হয়েছিল, যুগ থেকে মিলিসেকেন্ডে। ফোল্ডারের জন্য সেট করা নেই।
-
folderType
FolderType ঐচ্ছিক
Chrome 134+ Chrome 148 থেকে browser.*এটি থাকলে, এটি এমন একটি ফোল্ডার যা ব্রাউজার দ্বারা যোগ করা হয় এবং ব্যবহারকারী বা এক্সটেনশন দ্বারা পরিবর্তন করা যায় না। এই নোডে
unmodifiableপ্রপার্টি সেট করা না থাকলে, চাইল্ড নোড পরিবর্তন করা হতে পারে। ব্যবহারকারী এবং এক্সটেনশন (ডিফল্ট) দ্বারা নোড পরিবর্তন করা গেলে বাদ দেওয়া হয়।প্রতিটি ফোল্ডার প্রকারের শূন্য, এক বা একাধিক নোড থাকতে পারে। ব্রাউজারের মাধ্যমে কোনও ফোল্ডার যোগ করা বা সরানো যেতে পারে, তবে এক্সটেনশন API-এর মাধ্যমে নয়।
-
id
স্ট্রিং
নোডের জন্য অনন্য শনাক্তকারী। বর্তমান প্রোফাইলে আইডি অনন্য এবং ব্রাউজার রিস্টার্ট করার পরেও সেগুলি বৈধ থাকে।
-
সূচি
নম্বর ঐচ্ছিক
এর পেরেন্ট ফোল্ডারের মধ্যে এই নোডের 0-ভিত্তিক পজিশন।
-
parentId
স্ট্রিং ঐচ্ছিক
পেরেন্ট ফোল্ডারের
id। রুট নোডের জন্য বাদ দেওয়া হয়েছে। -
সিঙ্ক করা হচ্ছে
বুলিয়ান
Chrome 134+ Chrome 148 থেকে browser.*ব্রাউজার দ্বারা এই নোড ব্যবহারকারীর রিমোট অ্যাকাউন্ট স্টোরেজের সাথে সিঙ্ক করা হয়েছে কিনা। এটি একই
FolderType-এর অ্যাকাউন্ট ও শুধু-লোকাল ভার্সনের মধ্যে পার্থক্য করতে ব্যবহার করা যেতে পারে। এই প্রপার্টির ভ্যালু আগে থেকে থাকা নোডের জন্য পরিবর্তন হতে পারে, যেমন ব্যবহারকারীর অ্যাকশনের ফলে।মনে রাখবেন: এটি দেখায় যে নোডটি ব্রাউজারের বিল্ট-ইন অ্যাকাউন্ট প্রদানকারীতে সেভ করা আছে কিনা। এই ভ্যালু false হলেও, থার্ড-পার্টির মাধ্যমে কোনও নোড সিঙ্ক করা সম্ভব।
ম্যানেজ করা নোডের (যেসব নোডে
unmodifiable-এর ভ্যালুtrueহিসেবে সেট করা আছে) ক্ষেত্রে এই প্রপার্টির ভ্যালু সবসময়falseহবে। -
শীর্ষক
স্ট্রিং
নোডের জন্য দেখানো টেক্সট।
-
পরিবর্তন করা যাবে না
"ম্যানেজ করা"
ঐচ্ছিকএই নোডটি কেন পরিবর্তন করা যাবে না তার কারণ দেখায়।
managedমান থেকে বোঝা যায় যে এই নোড সিস্টেম অ্যাডমিনিস্ট্রেটর বা তত্ত্বাবধানে থাকা ব্যবহারকারীর অভিভাবক কনফিগার করেছেন। ব্যবহারকারী এবং এক্সটেনশন (ডিফল্ট) দ্বারা নোড পরিবর্তন করা গেলে বাদ দেওয়া হয়। -
URL
স্ট্রিং ঐচ্ছিক
ব্যবহারকারী বুকমার্কে ক্লিক করলে যে URL-এ নেভিগেট করা হয়। ফোল্ডারের জন্য বাদ দেওয়া হয়েছে।
BookmarkTreeNodeUnmodifiable
এই নোডটি কেন পরিবর্তন করা যাবে না তার কারণ দেখায়। managed ভ্যালু থেকে বোঝা যায় যে এই নোড সিস্টেম অ্যাডমিনিস্ট্রেটর কনফিগার করেছেন। ব্যবহারকারী এবং এক্সটেনশন (ডিফল্ট) দ্বারা নোড পরিবর্তন করা গেলে বাদ দেওয়া হয়।
ভ্যালু
"ম্যানেজ করা"
CreateDetails
create() ফাংশনে অবজেক্ট পাস করা হয়েছে।
প্রপার্টি
-
সূচি
নম্বর ঐচ্ছিক
-
parentId
স্ট্রিং ঐচ্ছিক
ডিফল্ট হিসেবে 'অন্যান্য বুকমার্ক' ফোল্ডারে সেভ হয়।
-
শীর্ষক
স্ট্রিং ঐচ্ছিক
-
URL
স্ট্রিং ঐচ্ছিক
FolderType
ফোল্ডারের ধরন নির্দেশ করে।
Enum
"bookmarks-bar"
ব্রাউজার উইন্ডোর সবচেয়ে উপরে যে ফোল্ডারের কন্টেন্ট দেখানো হয়।
"অন্যান্য"
সব প্ল্যাটফর্মে বুকমার্কের সম্পূর্ণ তালিকায় যেসব বুকমার্ক দেখানো হয়।
"মোবাইল"
ব্যবহারকারীর মোবাইল ডিভাইসে সাধারণত উপলভ্য বুকমার্ক, তবে এক্সটেনশন বা বুকমার্ক ম্যানেজারে পরিবর্তন করা যায়।
"ম্যানেজ করা"
সিস্টেম অ্যাডমিনিস্ট্রেটর বা তত্ত্বাবধানে থাকা ব্যবহারকারীর অভিভাবক বুকমার্ক কনফিগার করলে, একটি টপ-লেভেল ফোল্ডার থাকতে পারে।
প্রপার্টি
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Chrome-এ বুকমার্ক লেখার অপারেশন আর সীমিত নয়।
ভ্যালু
১০০০০০০
MAX_WRITE_OPERATIONS_PER_HOUR
Chrome-এ বুকমার্ক লেখার অপারেশন আর সীমিত নয়।
ভ্যালু
১০০০০০০
ROOT_NODE_ID
রুট লেভেল নোডের সাথে যুক্ত id।
ভ্যালু
"০"
পদ্ধতি
create()
browser.bookmarks.create(
bookmark: CreateDetails,
): Promise<BookmarkTreeNode>
নির্দিষ্ট parentId-এর অধীনে বুকমার্ক বা ফোল্ডার তৈরি করে। URL যদি NULL হয় বা না থাকে, তাহলে এটি একটি ফোল্ডার হবে।
প্যারামিটারগুলি
-
বুকমার্ক
রিটার্ন
-
Promise<BookmarkTreeNode>
Chrome 90+ browser.* Chrome 148 থেকে
get()
browser.bookmarks.get(
idOrIdList: string | [string, ...string[]],
): Promise<BookmarkTreeNode[]>
নির্দিষ্ট BookmarkTreeNode(গুলি) ফিরিয়ে আনে।
প্যারামিটারগুলি
-
idOrIdList
স্ট্রিং | [স্ট্রিং, ...স্ট্রিং[]]
একটি স্ট্রিং-ভ্যালু আইডি বা স্ট্রিং-ভ্যালু আইডির অ্যারে
রিটার্ন
-
Promise<BookmarkTreeNode[]>
Chrome 90+ browser.* Chrome 148 থেকে
getChildren()
browser.bookmarks.getChildren(
id: string,
): Promise<BookmarkTreeNode[]>
নির্দিষ্ট BookmarkTreeNode আইডির চাইল্ড ফিরিয়ে আনে।
প্যারামিটারগুলি
-
id
স্ট্রিং
রিটার্ন
-
Promise<BookmarkTreeNode[]>
Chrome 90+ browser.* Chrome 148 থেকে
getRecent()
browser.bookmarks.getRecent(
numberOfItems: number,
): Promise<BookmarkTreeNode[]>
সম্প্রতি যোগ করা বুকমার্ক ফিরিয়ে আনে।
প্যারামিটারগুলি
-
numberOfItems
নম্বর
ফেরত দেওয়ার জন্য সর্বাধিক সংখ্যক আইটেম।
রিটার্ন
-
Promise<BookmarkTreeNode[]>
Chrome 90+ browser.* Chrome 148 থেকে
getSubTree()
browser.bookmarks.getSubTree(
id: string,
): Promise<BookmarkTreeNode[]>
নির্দিষ্ট নোড থেকে শুরু করে বুকমার্কের হায়ারার্কির অংশ ফিরিয়ে আনে।
প্যারামিটারগুলি
-
id
স্ট্রিং
সাব-ট্রিয়ের রুট আইডি যা ফিরিয়ে আনতে হবে।
রিটার্ন
-
Promise<BookmarkTreeNode[]>
Chrome 90+ browser.* Chrome 148 থেকে
getTree()
browser.bookmarks.getTree(): Promise<BookmarkTreeNode[]>
সম্পূর্ণ বুকমার্ক হায়ারার্কি ফিরিয়ে আনে।
রিটার্ন
-
Promise<BookmarkTreeNode[]>
Chrome 90+ browser.* Chrome 148 থেকে
move()
browser.bookmarks.move(
id: string,
destination: object,
): Promise<BookmarkTreeNode>
উল্লেখ করা BookmarkTreeNode-কে প্রদত্ত লোকেশনে সরায়।
প্যারামিটারগুলি
-
id
স্ট্রিং
-
গন্তব্য
অবজেক্ট
-
সূচি
নম্বর ঐচ্ছিক
-
parentId
স্ট্রিং ঐচ্ছিক
-
রিটার্ন
-
Promise<BookmarkTreeNode>
Chrome 90+ browser.* Chrome 148 থেকে
remove()
browser.bookmarks.remove(
id: string,
): Promise<void>
বুকমার্ক বা খালি বুকমার্ক ফোল্ডার সরিয়ে দেয়।
প্যারামিটারগুলি
-
id
স্ট্রিং
রিটার্ন
-
<void> প্রমিস
Chrome 90+ browser.* Chrome 148 থেকে
removeTree()
browser.bookmarks.removeTree(
id: string,
): Promise<void>
একটি বুকমার্ক ফোল্ডার রিকার্সিভলি সরিয়ে দেয়।
প্যারামিটারগুলি
-
id
স্ট্রিং
রিটার্ন
-
<void> প্রমিস
Chrome 90+ browser.* Chrome 148 থেকে
search()
browser.bookmarks.search(
query: string | object,
): Promise<BookmarkTreeNode[]>
প্রদত্ত কোয়েরির সাথে ম্যাচ করে এমন BookmarkTreeNodes সার্চ করে। অবজেক্টের সাথে নির্দিষ্ট করা কোয়েরি, নির্দিষ্ট করা সব প্রপার্টির সাথে ম্যাচ করে এমন BookmarkTreeNodes তৈরি করে।
প্যারামিটারগুলি
-
কোয়েরি
স্ট্রিং | অবজেক্ট
বুকমার্ক URL এবং শিরোনামের সাথে মিলে যায় এমন শব্দ এবং উদ্ধৃত বাক্যাংশের স্ট্রিং অথবা কোনও অবজেক্ট। অবজেক্ট হলে,
query,urlএবংtitleপ্রপার্টি নির্দিষ্ট করা হতে পারে এবং নির্দিষ্ট করা সব প্রপার্টির সাথে মেলে এমন বুকমার্ক তৈরি করা হবে।-
কোয়েরি
স্ট্রিং ঐচ্ছিক
শব্দ ও উদ্ধৃত বাক্যাংশের স্ট্রিং যা বুকমার্ক URL ও শীর্ষকের সাথে ম্যাচ করানো হয়।
-
শীর্ষক
স্ট্রিং ঐচ্ছিক
বুকমার্কের শীর্ষক; হুবহু ম্যাচ করে।
-
URL
স্ট্রিং ঐচ্ছিক
বুকমার্কের URL; হুবহু মিলে যায়। মনে রাখবেন, ফোল্ডারের কোনও URL নেই।
-
রিটার্ন
-
Promise<BookmarkTreeNode[]>
Chrome 90+ browser.* Chrome 148 থেকে
update()
browser.bookmarks.update(
id: string,
changes: object,
): Promise<BookmarkTreeNode>
বুকমার্ক বা ফোল্ডারের প্রপার্টি আপডেট করে। আপনি শুধু সেইসব প্রপার্টি নির্দিষ্ট করুন যেগুলি পরিবর্তন করতে চান; নির্দিষ্ট না করা প্রপার্টি অপরিবর্তিত থাকবে। মনে রাখবেন: বর্তমানে শুধু 'title' ও 'url' কাজ করে।
প্যারামিটারগুলি
-
id
স্ট্রিং
-
বদল
অবজেক্ট
-
শীর্ষক
স্ট্রিং ঐচ্ছিক
-
URL
স্ট্রিং ঐচ্ছিক
-
রিটার্ন
-
Promise<BookmarkTreeNode>
Chrome 90+ browser.* Chrome 148 থেকে
ইভেন্ট
onChanged
browser.bookmarks.onChanged.addListener(
callback: function,
)
বুকমার্ক বা ফোল্ডার পরিবর্তন হলে ট্রিগার করা হয়। মনে রাখবেন: বর্তমানে, শুধুমাত্র শীর্ষক ও URL পরিবর্তন করলে এটি ট্রিগার হয়।
প্যারামিটারগুলি
-
কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(id: string, changeInfo: object) => void
-
id
স্ট্রিং
-
changeInfo
অবজেক্ট
-
শীর্ষক
স্ট্রিং
-
URL
স্ট্রিং ঐচ্ছিক
-
-
onChildrenReordered
browser.bookmarks.onChildrenReordered.addListener(
callback: function,
)
UI-তে ক্রম সাজানোর কারণে কোনও ফোল্ডারের চাইল্ড ফোল্ডারের ক্রম পরিবর্তন হলে ফায়ার করা হয়। এটি move() ফাংশনের ফলাফল হিসেবে কল করা হয় না।
প্যারামিটারগুলি
-
কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(id: string, reorderInfo: object) => void
-
id
স্ট্রিং
-
reorderInfo
অবজেক্ট
-
childIds
স্ট্রিং[]
-
-
onCreated
browser.bookmarks.onCreated.addListener(
callback: function,
)
বুকমার্ক বা ফোল্ডার তৈরি করা হলে ফায়ার করা হয়।
প্যারামিটারগুলি
-
কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(id: string, bookmark: BookmarkTreeNode) => void
-
id
স্ট্রিং
-
বুকমার্ক
-
onImportBegan
browser.bookmarks.onImportBegan.addListener(
callback: function,
)
বুকমার্ক ইম্পোর্ট সেশন শুরু হলে ফায়ার করা হয়। onImportEnded ফায়ার না হওয়া পর্যন্ত এক্সপেনসিভ অবজারভারদের onCreated আপডেট এড়িয়ে যাওয়া উচিত। পর্যবেক্ষকদের এখনও অন্যান্য বিজ্ঞপ্তি অবিলম্বে ম্যানেজ করতে হবে।
প্যারামিটারগুলি
-
কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
onImportEnded
browser.bookmarks.onImportEnded.addListener(
callback: function,
)
বুকমার্ক ইমপোর্ট সেশন শেষ হলে ফায়ার করা হয়।
প্যারামিটারগুলি
-
কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
onMoved
browser.bookmarks.onMoved.addListener(
callback: function,
)
কোনও বুকমার্ক বা ফোল্ডার অন্য কোনও পেরেন্ট ফোল্ডারে সরানো হলে ফায়ার করা হয়।
প্যারামিটারগুলি
-
কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(id: string, moveInfo: object) => void
-
id
স্ট্রিং
-
moveInfo
অবজেক্ট
-
সূচি
নম্বর
-
oldIndex
নম্বর
-
oldParentId
স্ট্রিং
-
parentId
স্ট্রিং
-
-
onRemoved
browser.bookmarks.onRemoved.addListener(
callback: function,
)
কোনও বুকমার্ক বা ফোল্ডার সরানো হলে অ্যাক্টিভ হয়। কোনও ফোল্ডার রিকার্সিভভাবে সরানো হলে, ফোল্ডারের জন্য একটি বিজ্ঞপ্তি পাঠানো হয় এবং এর কন্টেন্টের জন্য কোনও বিজ্ঞপ্তি পাঠানো হয় না।
প্যারামিটারগুলি
-
কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(id: string, removeInfo: object) => void
-
id
স্ট্রিং
-
removeInfo
অবজেক্ট
-
সূচি
নম্বর
-
nodeChrome 48+ Chrome 148 থেকে browser.*
-
parentId
স্ট্রিং
-
-