ब्यौरा
बुकमार्क बनाने, व्यवस्थित करने, और उनमें बदलाव करने के लिए, chrome.bookmarks एपीआई का इस्तेमाल करें. पेजों में बदलाव के लिए एपीआई भी देखें. इसका इस्तेमाल करके, बुकमार्क मैनेजर का कस्टम पेज बनाया जा सकता है.
अनुमतियां
bookmarksBookmarks API का इस्तेमाल करने के लिए, आपको एक्सटेंशन मेनिफ़ेस्ट में "bookmarks" अनुमति का एलान करना होगा. उदाहरण के लिए:
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
कॉन्सेप्ट और इस्तेमाल
ऑब्जेक्ट और प्रॉपर्टी
बुकमार्क को ट्री के फ़ॉर्मैट में व्यवस्थित किया जाता है. ट्री के हर नोड में, बुकमार्क या फ़ोल्डर होता है. कभी-कभी इसे ग्रुप भी कहा जाता है. ट्री में मौजूद हर नोड को bookmarks.BookmarkTreeNode ऑब्जेक्ट से दिखाया जाता है.
BookmarkTreeNode प्रॉपर्टी का इस्तेमाल पूरे chrome.bookmarks API में किया जाता है. उदाहरण के लिए, bookmarks.create को कॉल करते समय, आपको नए नोड का पैरंट (parentId) पास करना होता है. साथ ही, नोड की index, title, और url प्रॉपर्टी पास करनी होती हैं. हालांकि, ऐसा करना ज़रूरी नहीं है. किसी नोड की प्रॉपर्टी के बारे में जानकारी पाने के लिए, bookmarks.BookmarkTreeNode देखें.
उदाहरण
नीचे दिया गया कोड, "Extension bookmarks" टाइटल वाला फ़ोल्डर बनाता है. create() फ़ंक्शन का पहला आर्ग्युमेंट, नए फ़ोल्डर की प्रॉपर्टी तय करता है. दूसरे आर्ग्युमेंट में, फ़ोल्डर बनने के बाद लागू होने वाले फ़ंक्शन के बारे में बताया जाता है.
chrome.bookmarks.create(
{'parentId': bookmarkBar.id, 'title': 'Extension bookmarks'},
function(newFolder) {
console.log("added folder: " + newFolder.title);
},
);
अगला स्निपेट, एक्सटेंशन के डेवलपर दस्तावेज़ पर ले जाने वाला बुकमार्क बनाता है. अगर बुकमार्क नहीं बन पाता है, तो कोई समस्या नहीं होगी. इसलिए, इस कोड में कॉलबैक फ़ंक्शन को तय नहीं किया गया है.
chrome.bookmarks.create({
'parentId': extensionsFolderId,
'title': 'Extensions doc',
'url': 'https://developer.chrome.com/docs/extensions',
});
इस एपीआई को आज़माने के लिए, chrome-extension-samples रिपॉज़िटरी से Bookmarks API का उदाहरण इंस्टॉल करें.
टाइप
BookmarkTreeNode
बुकमार्क ट्री में मौजूद कोई नोड (बुकमार्क या फ़ोल्डर). चाइल्ड नोड, पैरंट फ़ोल्डर में क्रम से लगाए जाते हैं.
प्रॉपर्टी
-
बच्चे
BookmarkTreeNode[] optional
इस नोड के बच्चों की क्रम से लगाई गई सूची.
-
dateAdded
number ज़रूरी नहीं
यह नोड कब बनाया गया था. यह समय, Epoch (
new Date(dateAdded)) के बाद के मिलीसेकंड में होता है. -
dateGroupModified
number ज़रूरी नहीं
इस फ़ोल्डर के कॉन्टेंट में पिछली बार कब बदलाव किया गया था. यह समय, ईपॉक के बाद से मिलीसेकंड में होता है.
-
dateLastUsed
number ज़रूरी नहीं
Chrome 114 या इसके बाद का वर्शनइस नोड को पिछली बार कब खोला गया था. यह जानकारी, Epoch के बाद के मिलीसेकंड में होती है. फ़ोल्डर के लिए सेट नहीं किया गया है.
-
folderType
FolderType optional
Chrome 134 या इसके बाद के वर्शनअगर यह मौजूद है, तो यह एक ऐसा फ़ोल्डर है जिसे ब्राउज़र ने जोड़ा है. इसमें उपयोगकर्ता या एक्सटेंशन कोई बदलाव नहीं कर सकते. अगर इस नोड में
unmodifiableप्रॉपर्टी सेट नहीं है, तो चाइल्ड नोड में बदलाव किया जा सकता है. अगर नोड में उपयोगकर्ता और एक्सटेंशन (डिफ़ॉल्ट) बदलाव कर सकते हैं, तो इसे शामिल नहीं किया जाता.हर फ़ोल्डर टाइप के लिए, एक या कई नोड हो सकते हैं. ऐसा भी हो सकता है कि कोई नोड न हो. ब्राउज़र की मदद से किसी फ़ोल्डर को जोड़ा या हटाया जा सकता है. हालांकि, एक्सटेंशन एपीआई के ज़रिए ऐसा नहीं किया जा सकता.
-
आईडी
स्ट्रिंग
नोड के लिए यूनीक आइडेंटिफ़ायर. आईडी, मौजूदा प्रोफ़ाइल में यूनीक होते हैं. साथ ही, ब्राउज़र को रीस्टार्ट करने के बाद भी ये मान्य रहते हैं.
-
इंडेक्स
number ज़रूरी नहीं
यह नोड, अपने पैरंट फ़ोल्डर में किस क्रम पर है. यह क्रम 0 से शुरू होता है.
-
parentId
string ज़रूरी नहीं है
पैरंट फ़ोल्डर का
id. रूट नोड के लिए इस एट्रिब्यूट को शामिल नहीं किया जाता. -
सिंक हो रहा है
बूलियन
Chrome 134 या इसके बाद के वर्शनयह नोड, ब्राउज़र के ज़रिए उपयोगकर्ता के रिमोट खाते के स्टोरेज के साथ सिंक किया गया है या नहीं. इसका इस्तेमाल, एक ही
FolderTypeके खाता और सिर्फ़ स्थानीय वर्शन के बीच अंतर करने के लिए किया जा सकता है. मौजूदा नोड के लिए, इस प्रॉपर्टी की वैल्यू में बदलाव हो सकता है. उदाहरण के लिए, उपयोगकर्ता की कार्रवाई की वजह से.ध्यान दें: इससे पता चलता है कि नोड को ब्राउज़र के बिल्ट-इन खाता सेवा देने वाली कंपनी में सेव किया गया है या नहीं. ऐसा हो सकता है कि किसी नोड को तीसरे पक्ष के ज़रिए सिंक किया गया हो. भले ही, यह वैल्यू गलत हो.
मैनेज किए जा रहे नोड (ऐसे नोड जहां
unmodifiableकोtrueपर सेट किया गया है) के लिए, यह प्रॉपर्टी हमेशाfalseहोगी. -
title
स्ट्रिंग
नोड के लिए दिखाया गया टेक्स्ट.
-
बदलाव नहीं किया जा सकता
"managed"
ज़रूरी नहीं हैइससे पता चलता है कि इस नोड में बदलाव क्यों नहीं किया जा सकता.
managedवैल्यू से पता चलता है कि इस नोड को सिस्टम एडमिन या निगरानी में रखे गए उपयोगकर्ता के अभिभावक ने कॉन्फ़िगर किया था. अगर नोड में उपयोगकर्ता और एक्सटेंशन (डिफ़ॉल्ट) बदलाव कर सकते हैं, तो इसे शामिल नहीं किया जाता. -
url
string ज़रूरी नहीं है
वह यूआरएल जिस पर उपयोगकर्ता को बुकमार्क पर क्लिक करने के बाद भेजा जाता है. फ़ोल्डर के लिए यह जानकारी नहीं दी जाती.
BookmarkTreeNodeUnmodifiable
इससे पता चलता है कि इस नोड में बदलाव क्यों नहीं किया जा सकता. managed वैल्यू से पता चलता है कि इस नोड को सिस्टम एडमिन ने कॉन्फ़िगर किया था. अगर नोड में उपयोगकर्ता और एक्सटेंशन (डिफ़ॉल्ट) बदलाव कर सकते हैं, तो इसे शामिल नहीं किया जाता.
मान
"managed"
CreateDetails
create() फ़ंक्शन को पास किया गया ऑब्जेक्ट.
प्रॉपर्टी
-
इंडेक्स
number ज़रूरी नहीं
-
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 के तहत कोई बुकमार्क या फ़ोल्डर बनाता है. अगर यूआरएल NULL है या मौजूद नहीं है, तो यह एक फ़ोल्डर होगा.
पैरामीटर
-
बुकमार्क
रिटर्न
-
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 ज़रूरी नहीं
-
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[]>
यह दी गई क्वेरी से मेल खाने वाले BookmarkTreeNodes को खोजता है. किसी ऑब्जेक्ट के साथ तय की गई क्वेरी, 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
स्ट्रिंग
-
-