browser.bookmarks

ब्यौरा

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

तारे के निशान पर क्लिक करने से बुकमार्क जुड़ जाता है
तारे के निशान पर क्लिक करने से, बुकमार्क जुड़ जाता है.

अनुमतियां

bookmarks

Bookmarks 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

Chrome 44 या इसके बाद का वर्शन

इससे पता चलता है कि इस नोड में बदलाव क्यों नहीं किया जा सकता. managed वैल्यू से पता चलता है कि इस नोड को सिस्टम एडमिन ने कॉन्फ़िगर किया था. अगर नोड में उपयोगकर्ता और एक्सटेंशन, दोनों बदलाव कर सकते हैं, तो इसे शामिल नहीं किया जाता (डिफ़ॉल्ट).

वैल्यू

"managed"

CreateDetails

create() फ़ंक्शन को पास किया गया ऑब्जेक्ट.

प्रॉपर्टी

  • इंडेक्स

    number optional

  • parentId

    string ज़रूरी नहीं है

    डिफ़ॉल्ट रूप से, यह 'अन्य बुकमार्क' फ़ोल्डर में सेव होता है.

  • title

    string ज़रूरी नहीं है

  • url

    string ज़रूरी नहीं है

FolderType

Chrome 134 या इसके बाद के वर्शन

इससे फ़ोल्डर का टाइप पता चलता है.

Enum

"bookmarks-bar"
यह वह फ़ोल्डर होता है जिसका कॉन्टेंट, ब्राउज़र विंडो में सबसे ऊपर दिखता है.

"other"
ऐसे बुकमार्क जो सभी प्लैटफ़ॉर्म पर, बुकमार्क की पूरी सूची में दिखते हैं.

"mobile"
बुकमार्क आम तौर पर उपयोगकर्ता के फ़ोन या टैबलेट पर उपलब्ध होते हैं. हालांकि, एक्सटेंशन या बुकमार्क मैनेजर में जाकर इनमें बदलाव किया जा सकता है.

"managed"
यह टॉप-लेवल का फ़ोल्डर है. यह तब मौजूद हो सकता है, जब सिस्टम एडमिन या निगरानी में रखे गए उपयोगकर्ता के अभिभावक ने बुकमार्क कॉन्फ़िगर किए हों.

प्रॉपर्टी

MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE

अब काम नहीं करता

बुकमार्क लिखने की कार्रवाइयों पर, अब Chrome की पाबंदी नहीं है.

वैल्यू

1000000

MAX_WRITE_OPERATIONS_PER_HOUR

अब काम नहीं करता

बुकमार्क लिखने की कार्रवाइयों पर, अब Chrome की पाबंदी नहीं है.

वैल्यू

1000000

ROOT_NODE_ID

Chrome 145 या इसके बाद के वर्शन

रूट लेवल नोड से जुड़ा id.

वैल्यू

"0"

तरीके

create()

chrome.bookmarks.create(
  bookmark: CreateDetails,
)
: Promise<BookmarkTreeNode>

यह फ़ंक्शन, तय किए गए parentId के तहत एक बुकमार्क या फ़ोल्डर बनाता है. अगर यूआरएल शून्य है या मौजूद नहीं है, तो यह एक फ़ोल्डर होगा.

पैरामीटर

रिटर्न

  • 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 ज़रूरी नहीं है

रिटर्न

  • 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 या इसके बाद का वर्शन
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 ज़रूरी नहीं है

रिटर्न

  • 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

        स्ट्रिंग