ब्यौरा
बुकमार्क बनाने, व्यवस्थित करने, और उनमें बदलाव करने के लिए, chrome.bookmarks
एपीआई का इस्तेमाल करें. पेजों में बदलाव करने की सुविधा के बारे में भी जानें. इसका इस्तेमाल करके, बुकमार्क मैनेजर का कस्टम पेज बनाया जा सकता है.

अनुमतियां
bookmarks
Bookmarks 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[] ज़रूरी नहीं
इस नोड के बच्चों की क्रम से लगाई गई सूची.
- dateAdded
number ज़रूरी नहीं
इस नोड को कब बनाया गया था. यह जानकारी, Epoch (
new Date(dateAdded)
) के बाद के मिलीसेकंड में दी जाती है. - dateGroupModified
number ज़रूरी नहीं
इस फ़ोल्डर के कॉन्टेंट में पिछली बार कब बदलाव किया गया था. यह समय, epoch के बाद से मिलीसेकंड में होता है.
- 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
तरीके
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[]>
यह दी गई क्वेरी से मेल खाने वाले BookmarkTreeNode ऑब्जेक्ट खोजता है. किसी ऑब्जेक्ट के साथ तय की गई क्वेरी, तय की गई सभी प्रॉपर्टी से मेल खाने वाले BookmarkTreeNodes बनाती है.
पैरामीटर
- क्वेरी
स्ट्रिंग | ऑब्जेक्ट
यह शब्दों की स्ट्रिंग और कोट किए गए वाक्यांशों का ऐसा कलेक्शन होता है जिसे बुकमार्क किए गए यूआरएल और टाइटल से मैच किया जाता है. इसके अलावा, यह कोई ऑब्जेक्ट भी हो सकता है. अगर कोई ऑब्जेक्ट है, तो
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
स्ट्रिंग
-
-