ब्यौरा
बुकमार्क बनाने, व्यवस्थित करने, और उनमें बदलाव करने के लिए, chrome.bookmarks एपीआई का इस्तेमाल करें. कस्टम बुकमार्क मैनेजर पेज बनाने के लिए, पेजों में बदलाव करने की सुविधा का इस्तेमाल करें.
अनुमतियां
bookmarksBookmarks API का इस्तेमाल करने के लिए, आपको एक्सटेंशन मेनिफ़ेस्ट में "bookmarks" अनुमति का एलान करना होगा. उदाहरण के लिए:
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
कॉन्सेप्ट और इस्तेमाल करने का तरीका
ऑब्जेक्ट और प्रॉपर्टी
बुकमार्क को ट्री के फ़ॉर्मैट में व्यवस्थित किया जाता है. ट्री का हर नोड, बुकमार्क या फ़ोल्डर होता है. कभी-कभी इसे ग्रुप भी कहा जाता है. ट्री में मौजूद हर नोड को bookmarks.BookmarkTreeNode ऑब्जेक्ट से दिखाया जाता है.
BookmarkTreeNode प्रॉपर्टी का इस्तेमाल, पूरे browser.bookmarks एपीआई में किया जाता है. उदाहरण के लिए, bookmarks.create को कॉल करते समय, आपको नए नोड का पैरंट (parentId) पास करना होता है. इसके अलावा, नोड की index, title, और url प्रॉपर्टी पास की जा सकती हैं. किसी नोड की प्रॉपर्टी के बारे में जानकारी पाने के लिए, bookmarks.BookmarkTreeNode देखें.
उदाहरण
नीचे दिया गया कोड, "Extension bookmarks" टाइटल वाला फ़ोल्डर बनाता है. 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',
});
इस एपीआई को आज़माने के लिए, chrome-extension-samples रिपॉज़िटरी से Bookmarks API का उदाहरण इंस्टॉल करें.
टाइप
BookmarkTreeNode
बुकमार्क ट्री में मौजूद कोई नोड (बुकमार्क या फ़ोल्डर). चाइल्ड नोड, पैरंट फ़ोल्डर में क्रम से लगाए जाते हैं.
प्रॉपर्टी
-
चाइल्ड कंटेनर
BookmarkTreeNode[] optional
इस नोड के बच्चों की क्रम से लगाई गई सूची.
-
dateAdded
number optional
यह नोड कब बनाया गया था. यह जानकारी, Epoch (
new Date(dateAdded)) के बाद के मिलीसेकंड में दी जाती है. -
dateGroupModified
number optional
इस फ़ोल्डर के कॉन्टेंट में पिछली बार कब बदलाव किया गया था. यह समय, ईपॉक के बाद से मिलीसेकंड में होता है.
-
dateLastUsed
number optional
Chrome 114 या इसके बाद का वर्शनइस नोड को पिछली बार कब खोला गया था. यह जानकारी, epoch के बाद से मिलीसेकंड में दी जाती है. फ़ोल्डर के लिए सेट नहीं किया गया है.
-
folderType
FolderType optional
Chrome 134 या इसके बाद के वर्शनअगर यह मौजूद है, तो यह एक ऐसा फ़ोल्डर है जिसे ब्राउज़र ने जोड़ा है. इसमें उपयोगकर्ता या एक्सटेंशन कोई बदलाव नहीं कर सकता. अगर इस नोड में
unmodifiableप्रॉपर्टी सेट नहीं है, तो चाइल्ड नोड में बदलाव किया जा सकता है. अगर नोड में उपयोगकर्ता और एक्सटेंशन, दोनों बदलाव कर सकते हैं, तो इसे शामिल नहीं किया जाता (डिफ़ॉल्ट).हर फ़ोल्डर टाइप के लिए, एक या कई नोड हो सकते हैं. ऐसा भी हो सकता है कि कोई नोड न हो. ब्राउज़र, फ़ोल्डर को जोड़ या हटा सकता है. हालांकि, एक्सटेंशन एपीआई के ज़रिए ऐसा नहीं किया जा सकता.
-
आईडी
स्ट्रिंग
नोड के लिए यूनीक आइडेंटिफ़ायर. आईडी, मौजूदा प्रोफ़ाइल में यूनीक होते हैं. साथ ही, ब्राउज़र को रीस्टार्ट करने के बाद भी ये मान्य रहते हैं.
-
इंडेक्स
number optional
यह नोड, अपने पैरंट फ़ोल्डर में किस क्रम पर है. यह क्रम 0 से शुरू होता है.
-
parentId
string ज़रूरी नहीं है
पैरंट फ़ोल्डर का
id. रूट नोड के लिए इस एट्रिब्यूट को शामिल नहीं किया जाता. -
सिंक हो रहा है
बूलियन
Chrome 134 या इसके बाद के वर्शनयह नोड, ब्राउज़र के ज़रिए उपयोगकर्ता के रिमोट खाते के स्टोरेज के साथ सिंक किया गया है या नहीं. इसका इस्तेमाल, एक ही
FolderTypeके खाता और सिर्फ़ स्थानीय वर्शन के बीच अंतर करने के लिए किया जा सकता है. किसी मौजूदा नोड के लिए इस प्रॉपर्टी की वैल्यू बदल सकती है. उदाहरण के लिए, उपयोगकर्ता की कार्रवाई की वजह से.ध्यान दें: इससे पता चलता है कि नोड को ब्राउज़र के बिल्ट-इन खाता प्रोवाइडर में सेव किया गया है या नहीं. ऐसा हो सकता है कि किसी नोड को तीसरे पक्ष के ज़रिए सिंक किया गया हो. भले ही, यह वैल्यू गलत हो.
मैनेज किए जा रहे नोड (ऐसे नोड जहां
unmodifiableकोtrueपर सेट किया गया है) के लिए, यह प्रॉपर्टी हमेशाfalseहोगी. -
title
स्ट्रिंग
नोड के लिए दिखाया गया टेक्स्ट.
-
बदला नहीं जा सकता
"managed"
ज़रूरी नहीं हैइससे पता चलता है कि इस नोड में बदलाव क्यों नहीं किया जा सकता.
managedवैल्यू से पता चलता है कि इस नोड को सिस्टम एडमिन या निगरानी में रखे गए उपयोगकर्ता के अभिभावक ने कॉन्फ़िगर किया था. अगर नोड में उपयोगकर्ता और एक्सटेंशन, दोनों बदलाव कर सकते हैं, तो इसे शामिल नहीं किया जाता (डिफ़ॉल्ट). -
url
string ज़रूरी नहीं है
वह यूआरएल जिस पर उपयोगकर्ता को बुकमार्क पर क्लिक करने के बाद भेजा जाता है. फ़ोल्डर के लिए यह जानकारी नहीं दी जाती.
BookmarkTreeNodeUnmodifiable
इससे पता चलता है कि इस नोड में बदलाव क्यों नहीं किया जा सकता. managed वैल्यू से पता चलता है कि इस नोड को सिस्टम एडमिन ने कॉन्फ़िगर किया था. अगर नोड में उपयोगकर्ता और एक्सटेंशन, दोनों बदलाव कर सकते हैं, तो इसे शामिल नहीं किया जाता (डिफ़ॉल्ट).
वैल्यू
"managed"
CreateDetails
create() फ़ंक्शन को पास किया गया ऑब्जेक्ट.
प्रॉपर्टी
-
इंडेक्स
number optional
-
parentId
string ज़रूरी नहीं है
डिफ़ॉल्ट रूप से, यह 'अन्य बुकमार्क' फ़ोल्डर में सेव होता है.
-
title
string ज़रूरी नहीं है
-
url
string ज़रूरी नहीं है
FolderType
इससे फ़ोल्डर का टाइप पता चलता है.
Enum
"bookmarks-bar"
यह वह फ़ोल्डर होता है जिसका कॉन्टेंट, ब्राउज़र विंडो में सबसे ऊपर दिखता है.
"other"
ऐसे बुकमार्क जो सभी प्लैटफ़ॉर्म पर, बुकमार्क की पूरी सूची में दिखते हैं.
"mobile"
बुकमार्क आम तौर पर उपयोगकर्ता के फ़ोन या टैबलेट पर उपलब्ध होते हैं. हालांकि, एक्सटेंशन या बुकमार्क मैनेजर में जाकर इनमें बदलाव किया जा सकता है.
"managed"
यह टॉप-लेवल का फ़ोल्डर है. यह तब मौजूद हो सकता है, जब सिस्टम एडमिन या निगरानी में रखे गए उपयोगकर्ता के अभिभावक ने बुकमार्क कॉन्फ़िगर किए हों.
प्रॉपर्टी
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
बुकमार्क लिखने की कार्रवाइयों पर, अब Chrome की पाबंदी नहीं है.
वैल्यू
1000000
MAX_WRITE_OPERATIONS_PER_HOUR
बुकमार्क लिखने की कार्रवाइयों पर, अब Chrome की पाबंदी नहीं है.
वैल्यू
1000000
ROOT_NODE_ID
रूट लेवल नोड से जुड़ा id.
वैल्यू
"0"
तरीके
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
): Promise<BookmarkTreeNode>
यह फ़ंक्शन, तय किए गए parentId के तहत एक बुकमार्क या फ़ोल्डर बनाता है. अगर यूआरएल शून्य है या मौजूद नहीं है, तो यह एक फ़ोल्डर होगा.
पैरामीटर
-
बुकमार्क
रिटर्न
-
Promise<BookmarkTreeNode>
Chrome 90 या इसके बाद का वर्शन
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
): Promise<BookmarkTreeNode[]>
यह फ़ंक्शन, चुने गए BookmarkTreeNode(s) को वापस लाता है.
पैरामीटर
-
idOrIdList
string | [string, ...string[]]
स्ट्रिंग वैल्यू वाला एक आईडी या स्ट्रिंग वैल्यू वाले आईडी की कैटगरी
रिटर्न
-
Promise<BookmarkTreeNode[]>
Chrome 90 या इसके बाद का वर्शन
getChildren()
chrome.bookmarks.getChildren(
id: string,
): Promise<BookmarkTreeNode[]>
यह फ़ंक्शन, BookmarkTreeNode के तय किए गए आईडी के चाइल्ड नोड को वापस लाता है.
पैरामीटर
-
आईडी
स्ट्रिंग
रिटर्न
-
Promise<BookmarkTreeNode[]>
Chrome 90 या इसके बाद का वर्शन
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
): Promise<BookmarkTreeNode[]>
यह कुकी, हाल ही में जोड़े गए बुकमार्क को वापस लाती है.
पैरामीटर
-
numberOfItems
संख्या
वापस लाए जाने वाले आइटम की ज़्यादा से ज़्यादा संख्या.
रिटर्न
-
Promise<BookmarkTreeNode[]>
Chrome 90 या इसके बाद का वर्शन
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
): Promise<BookmarkTreeNode[]>
यह फ़ंक्शन, बुकमार्क के क्रम-बद्ध तरीके से व्यवस्थित किए गए डेटा का कुछ हिस्सा दिखाता है. यह हिस्सा, तय किए गए नोड से शुरू होता है.
पैरामीटर
-
आईडी
स्ट्रिंग
उस सबट्री के रूट का आईडी जिसे वापस पाना है.
रिटर्न
-
Promise<BookmarkTreeNode[]>
Chrome 90 या इसके बाद का वर्शन
getTree()
chrome.bookmarks.getTree(): Promise<BookmarkTreeNode[]>
यह बुकमार्क की पूरी हैरारकी को फिर से पाता है.
रिटर्न
-
Promise<BookmarkTreeNode[]>
Chrome 90 या इसके बाद का वर्शन
move()
chrome.bookmarks.move(
id: string,
destination: object,
): Promise<BookmarkTreeNode>
यह तरीका, दिए गए BookmarkTreeNode को बताई गई जगह पर ले जाता है.
पैरामीटर
-
आईडी
स्ट्रिंग
-
डेस्टिनेशन
ऑब्जेक्ट
-
इंडेक्स
number optional
-
parentId
string ज़रूरी नहीं है
-
रिटर्न
-
Promise<BookmarkTreeNode>
Chrome 90 या इसके बाद का वर्शन
remove()
chrome.bookmarks.remove(
id: string,
): Promise<void>
इस कुकी का इस्तेमाल, किसी बुकमार्क या बुकमार्क वाले खाली फ़ोल्डर को हटाने के लिए किया जाता है.
पैरामीटर
-
आईडी
स्ट्रिंग
रिटर्न
-
Promise<void>
Chrome 90 या इसके बाद का वर्शन
removeTree()
chrome.bookmarks.removeTree(
id: string,
): Promise<void>
यह विकल्प, बुकमार्क फ़ोल्डर को बार-बार हटाने की सुविधा देता है.
पैरामीटर
-
आईडी
स्ट्रिंग
रिटर्न
-
Promise<void>
Chrome 90 या इसके बाद का वर्शन
search()
chrome.bookmarks.search(
query: string | object,
): Promise<BookmarkTreeNode[]>
यह दी गई क्वेरी से मेल खाने वाले BookmarkTreeNode को खोजता है. किसी ऑब्जेक्ट के साथ तय की गई क्वेरी, तय की गई सभी प्रॉपर्टी से मेल खाने वाले BookmarkTreeNodes बनाती है.
पैरामीटर
-
क्वेरी
string | object
यह शब्दों की स्ट्रिंग और कोट किए गए वाक्यांशों में से कोई एक हो सकता है. इनका मिलान बुकमार्क किए गए यूआरएल और टाइटल से किया जाता है. इसके अलावा, यह कोई ऑब्जेक्ट भी हो सकता है. अगर कोई ऑब्जेक्ट है, तो
query,url, औरtitleप्रॉपर्टी तय की जा सकती हैं. साथ ही, तय की गई सभी प्रॉपर्टी से मेल खाने वाले बुकमार्क जनरेट किए जाएंगे.-
क्वेरी
string ज़रूरी नहीं है
यह शब्दों और कोट किए गए वाक्यांशों की एक स्ट्रिंग होती है. इसे बुकमार्क के यूआरएल और टाइटल से मैच किया जाता है.
-
title
string ज़रूरी नहीं है
बुकमार्क का टाइटल; यह पूरी तरह से मैच होना चाहिए.
-
url
string ज़रूरी नहीं है
बुकमार्क का यूआरएल; यह हूबहू मैच होना चाहिए. ध्यान दें कि फ़ोल्डर का कोई यूआरएल नहीं होता.
-
रिटर्न
-
Promise<BookmarkTreeNode[]>
Chrome 90 या इसके बाद का वर्शन
update()
chrome.bookmarks.update(
id: string,
changes: object,
): Promise<BookmarkTreeNode>
यह कुकी, किसी बुकमार्क या फ़ोल्डर की प्रॉपर्टी अपडेट करती है. सिर्फ़ उन प्रॉपर्टी के बारे में बताएं जिनमें आपको बदलाव करना है. जिन प्रॉपर्टी के बारे में नहीं बताया गया है उनमें कोई बदलाव नहीं किया जाएगा. ध्यान दें: फ़िलहाल, सिर्फ़ 'title' और 'url' एट्रिब्यूट के लिए यह सुविधा उपलब्ध है.
पैरामीटर
-
आईडी
स्ट्रिंग
-
बदलाव
ऑब्जेक्ट
-
title
string ज़रूरी नहीं है
-
url
string ज़रूरी नहीं है
-
रिटर्न
-
Promise<BookmarkTreeNode>
Chrome 90 या इसके बाद का वर्शन
इवेंट
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
जब किसी बुकमार्क या फ़ोल्डर में बदलाव होता है, तब यह इवेंट ट्रिगर होता है. ध्यान दें: फ़िलहाल, सिर्फ़ टाइटल और यूआरएल में बदलाव होने पर यह सुविधा ट्रिगर होती है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(id: string, changeInfo: object) => void
-
आईडी
स्ट्रिंग
-
changeInfo
ऑब्जेक्ट
-
title
स्ट्रिंग
-
url
string ज़रूरी नहीं है
-
-
onChildrenReordered
chrome.bookmarks.onChildrenReordered.addListener(
callback: function,
)
जब यूज़र इंटरफ़ेस (यूआई) में फ़ोल्डर के क्रम को वर्णमाला के हिसाब से लगाया जाता है, तब फ़ोल्डर के क्रम में बदलाव होने पर यह इवेंट ट्रिगर होता है. इसे move() के नतीजे के तौर पर नहीं कहा जाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(id: string, reorderInfo: object) => void
-
आईडी
स्ट्रिंग
-
reorderInfo
ऑब्जेक्ट
-
childIds
string[]
-
-
onCreated
chrome.bookmarks.onCreated.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब कोई बुकमार्क या फ़ोल्डर बनाया जाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(id: string, bookmark: BookmarkTreeNode) => void
-
आईडी
स्ट्रिंग
-
बुकमार्क
-
onImportBegan
chrome.bookmarks.onImportBegan.addListener(
callback: function,
)
इस कुकी को तब ट्रिगर किया जाता है, जब बुकमार्क इंपोर्ट करने का सेशन शुरू होता है. ज़्यादा संसाधन इस्तेमाल करने वाले ऑब्ज़र्वर को onCreated अपडेट को तब तक अनदेखा करना चाहिए, जब तक onImportEnded ट्रिगर न हो जाए. हालांकि, ऑब्ज़र्वर को अन्य सूचनाओं पर तुरंत कार्रवाई करनी चाहिए.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:() => void
onImportEnded
chrome.bookmarks.onImportEnded.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब बुकमार्क इंपोर्ट करने का सेशन खत्म हो जाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:() => void
onMoved
chrome.bookmarks.onMoved.addListener(
callback: function,
)
जब किसी बुकमार्क या फ़ोल्डर को किसी दूसरे पैरंट फ़ोल्डर में ले जाया जाता है, तब यह इवेंट ट्रिगर होता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(id: string, moveInfo: object) => void
-
आईडी
स्ट्रिंग
-
moveInfo
ऑब्जेक्ट
-
इंडेक्स
संख्या
-
oldIndex
संख्या
-
oldParentId
स्ट्रिंग
-
parentId
स्ट्रिंग
-
-
onRemoved
chrome.bookmarks.onRemoved.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब किसी बुकमार्क या फ़ोल्डर को हटाया जाता है. जब किसी फ़ोल्डर को बार-बार हटाया जाता है, तो उस फ़ोल्डर के लिए एक सूचना भेजी जाती है. उसके कॉन्टेंट के लिए कोई सूचना नहीं भेजी जाती.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(id: string, removeInfo: object) => void
-
आईडी
स्ट्रिंग
-
removeInfo
ऑब्जेक्ट
-
इंडेक्स
संख्या
-
नोडChrome 48 या इसके बाद का वर्शन
-
parentId
स्ट्रिंग
-
-