ब्यौरा
बुकमार्क बनाने, व्यवस्थित करने, और उनमें बदलाव करने के लिए, chrome.bookmarks
API का इस्तेमाल करें. पेजों में बदलाव करने के लिए एपीआई भी देखें. इसका इस्तेमाल, बुकमार्क मैनेजर का क��्टम पेज बनाने के लिए किया जा सकता है.
अनुमतियां
bookmarks
बुकमार्क एपीआई का इस्तेमाल करने के लिए, आपको एक्सटेंशन मेनिफ़ेस्ट में "बुकमार्क" की अनुमति का एलान करना होगा. उदाहरण के लिए:
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
कॉन्सेप्ट और इस्तेमाल
ऑब्जेक्ट और प्रॉपर्टी
बुकमार्क को ट्री में व्यवस्थित किया जाता है. ट्री में मौजूद हर नोड, बुकमार्क या फ़ोल्डर होता है. कभी-कभी फ़ोल्डर को ग्रुप भी कहा जाता है. ट्री में मौजूद हर नोड को bookmarks.BookmarkTreeNode ऑब्जेक्ट से दिखाया जाता है.
BookmarkTreeNode
प्रॉपर्टी का इस्तेमाल, chrome.bookmarks
एपीआई में किया जाता है. उदाहरण के लिए, bookmarks.create को कॉल करते समय, नए नोड के पैरंट (parentId
) के साथ-साथ, वैकल्पिक तौर पर नोड की index
, title
, और url
प्रॉपर्टी भी दी जाती हैं. किसी नोड में मौजूद प्रॉपर्टी के बारे में जानकारी पाने के लिए, bookmarks.BookmarkTreeNode देखें.
उदाहरण
नीचे दिया गया कोड, "एक्सटेंशन बुकमार्क" टाइटल वाला फ़ोल्डर बनाता है. 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 ज़रूरी नहीं
यह नोड कब बनाया गया था. इसे ईपॉच (
new Date(dateAdded)
) के बाद के मिलीसेकंड में दिखाया जाता है. -
dateGroupModified
number ज़रूरी नहीं
इस फ़ोल्डर के कॉन्टेंट में पिछली बार कब बदलाव किया गया था. यह समय, युग के बाद से मिलीसेकंड में दिया जाता है.
-
dateLastUsed
number ज़रूरी नहीं
Chrome 114 और उसके बाद के वर्शनइस नोड को पिछली बार कब खोला गया था. इसे ईपॉच के बाद के मिलीसेकंड में दिखाया जाता है. फ़ोल्डर के लिए सेट नहीं किया गया है.
-
आईडी
स्ट्रिंग
नोड के लिए यूनीक आइडेंटिफ़ायर. मौजूदा प्रोफ़ाइल में आईडी यूनीक होते हैं. साथ ही, ब्राउ��़र को रीस्टार्ट करने के बाद भी ये मान्य रहते हैं.
-
इंडेक्स
number ज़रूरी नहीं
अपने पैरंट फ़ोल्डर में, इस नोड की 0 से शुरू होने वाली स्थिति.
-
parentId
स्ट्रिंग ज़रूरी नहीं
पैरंट फ़ोल्डर का
id
. रूट नोड के लिए शामिल नहीं किया गया. -
title
स्ट्रिंग
नोड के लिए दिखाया गया टेक्स्ट.
-
बदला नहीं जा सकता
"मैनेज किया गया"
ज़रूरी नहींइस नोड में बदलाव न किए जा सकने की वजह बताता है.
managed
वैल्यू से पता चलता है कि इस नोड को सिस्टम एडमिन या निगरानी में रखे गए उपयोगकर्ता के कस्टोडियन ने कॉन्फ़िगर किया था. अगर उपयोगकर्ता और एक्सटेंशन, नोड में बदलाव कर सकते हैं, तो इसे हटा दिया जाता है (डिफ़ॉल्ट). -
url
स्ट्रिंग ज़रूरी नहीं
वह यूआरएल जिस पर उपयोगकर्ता, बुकमार्क पर क्लिक करने के बाद पहुंचता है. फ़ोल्डर के लिए शामिल नहीं किया गया.
BookmarkTreeNodeUnmodifiable
इस नोड में बदलाव न किए जा सकने की वजह बताता है. managed
वैल्यू से पता चलता है कि इस नोड को सिस्टम एडमिन ने कॉन्फ़िगर किया था. अगर उपयोगकर्ता और एक्सटेंशन, नोड में बदलाव कर सकते हैं, तो इसे हटा दिया जाता है (डिफ़ॉल्ट).
मान
"मैनेज किया गया"
CreateDetails
create() फ़ंक्शन में पास किया गया ऑब्जेक्ट.
प्रॉपर्टी
-
इंडेक्स
number ज़रूरी नहीं
-
parentId
स्ट्रिंग ज़रूरी नहीं
डिफ़ॉल्ट रूप से, यह अन्य बुकमार्क फ़ोल्डर में सेट होता है.
-
title
स्ट्रिंग ज़रूरी नहीं
-
url
स्ट्रिंग ज़रूरी नहीं
प्रॉपर्टी
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
बुकमार्क में बदलाव करने की सुविधा अब Chrome तक सीमित नहीं है.
मान
1000000
MAX_WRITE_OPERATIONS_PER_HOUR
बुकमार्क में बदलाव करने की सुविधा अब Chrome तक सीमित नहीं है.
मान
1000000
तरीके
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
callback?: function,
)
दिए गए parentId के तहत बुकमार्क या फ़ोल्डर बनाता है. अगर यूआरएल मौजूद नहीं है या शून्य है, तो यह एक फ़ोल्डर होगा.
पैरामीटर
-
बुकमार्क
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(result: BookmarkTreeNode) => void
-
नतीजा
-
रिटर्न
-
Promise<BookmarkTreeNode>
Chrome 90 और उसके बाद के वर्शनमेनिफ़ेस्ट के तीसरे और उसके बाद के वर्शन में, प्रॉमिस का इस्तेमाल किया जा सकता है. हालांकि, पुराने सिस्टम के साथ काम करने की सुविधा के लिए कॉलबैक उपलब्ध कराए गए हैं. एक ही फ़ंक्शन कॉल में, दोनों का इस्तेमाल नहीं किया जा सकता. प्रोमिस, कॉलबैक में पास किए गए टाइप के साथ ही रिज़ॉल्व होता है.
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
callback?: function,
)
बताए गए BookmarkTreeNode को वापस लाता है.
पैरामीटर
-
idOrIdList
string | [string, ...string[]]
स्ट्रिंग वैल्यू वाला एक आईडी या स्ट्रिंग वैल्यू वाले आईडी का कलेक्शन
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(results: BookmarkTreeNode[]) => void
-
नतीजे
-
रिटर्न
-
Promise<BookmarkTreeNode[]>
Chrome 90 और उसके बाद के वर्शनमेनिफ़ेस्ट के तीसरे और उसके बाद के वर्शन में, प्रॉमिस का इस्तेमाल किया जा सकता है. हालांकि, पुराने सिस्टम के साथ काम करने की सुविधा के लिए कॉलबैक उपलब्ध कराए गए हैं. एक ही फ़ंक्शन कॉल में, दोनों का इस्तेमाल नहीं किया जा सकता. प्रोमिस, कॉलबैक में पास किए गए टाइप के साथ ही रिज़ॉल्व होता है.
getChildren()
chrome.bookmarks.getChildren(
id: string,
callback?: function,
)
दिए गए BookmarkTreeNode आईडी के चाइल्ड को वापस लाता है.
पैरामीटर
-
आईडी
स्ट्रिंग
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(results: BookmarkTreeNode[]) => void
-
नतीजे
-
रिटर्न
-
Promise<BookmarkTreeNode[]>
Chrome 90 और उसके बाद के वर्शनमेनिफ़ेस्ट के तीसरे और उसके बाद के वर्शन में, प्रॉमिस का इस्तेमाल किया जा सकता है. हालांकि, पुराने सिस्टम के साथ काम करने की सुविधा के लिए कॉलबैक उपलब्ध कराए गए हैं. एक ही फ़ंक्शन कॉल में, दोनों का इस्तेमाल नहीं किया जा सकता. प्रोमिस, कॉलबैक में पास किए गए टाइप के साथ ही रिज़ॉल्व होता है.
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
callback?: function,
)
हाल ही में जोड़े गए बुकमार्क दिखाता है.
पैरामीटर
-
numberOfItems
संख्या
लौटाए जाने वाले आइटम की ज़्यादा से ज़्यादा संख्या.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(results: BookmarkTreeNode[]) => void
-
नतीजे
-
रिटर्न
-
Promise<BookmarkTreeNode[]>
Chrome 90 और उसके बाद के वर्शनमेनिफ़ेस्ट के तीसरे और उसके बाद के वर्शन में, प्रॉमिस का इस्तेमाल किया जा सकता है. हालांकि, पुराने सिस्टम के साथ काम करने की सुविधा के लिए कॉलबैक उपलब्ध कराए गए हैं. एक ही फ़ंक्शन कॉल में, दोनों का इस्तेमाल नहीं किया जा सकता. प्रोमिस, कॉलबैक में पास किए गए टाइप के साथ ही रिज़ॉल्व होता है.
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
callback?: function,
)
यह फ़ंक्शन, दिए गए नोड से शुरू होकर बुकमार्क की हैरारकी का कुछ हिस्सा दिखाता है.
पैरामीटर
-
आईडी
स्ट्रिंग
उस सबट्री के रूट का आईडी जिसे वापस लाना है.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(results: BookmarkTreeNode[]) => void
-
नतीजे
-
रिटर्न
-
Promise<BookmarkTreeNode[]>
Chrome 90 और उसके बाद के वर्शनमेनिफ़ेस्ट के तीसरे और उसके बाद के वर्शन में, प्रॉमिस का इस्तेमाल किया जा सकता है. हालांकि, पुराने सिस्टम के साथ काम करने की सुविधा के लिए कॉलबैक उपलब्ध कराए गए हैं. एक ही फ़ंक्शन कॉल में, दोनों का इस्तेमाल नहीं किया जा सकता. प्रोमिस, कॉलबैक में पास किए गए टाइप के साथ ही रिज़ॉल्व होता है.
getTree()
chrome.bookmarks.getTree(
callback?: function,
)
बुकमार्क की पूरी हैरारकी को वापस लाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(results: BookmarkTreeNode[]) => void
-
नतीजे
-
रिटर्न
-
Promise<BookmarkTreeNode[]>
Chrome 90 और उसके बाद के वर्शनमेनिफ़ेस्ट के तीसरे और उसके बाद के वर्शन में, प्रॉमिस का इस्तेमाल किया जा सकता है. हालांकि, पुराने सिस्टम के साथ काम करने की सुविधा के लिए कॉलबैक उपलब्ध कराए गए हैं. एक ही फ़ंक्शन कॉल में, दोनों का इस्तेमाल नहीं किया जा सकता. प्रोमिस, कॉलबैक में पास किए गए टाइप के साथ ही रिज़ॉल्व होता है.
move()
chrome.bookmarks.move(
id: string,
destination: object,
callback?: function,
)
दिए गए BookmarkTreeNode को दी गई जगह पर ले जाता है.
पैरामीटर
-
आईडी
स्ट्रिंग
-
डेस्टिनेशन
ऑब्जेक्ट
-
इंडेक्स
number ज़रूरी नहीं
-
parentId
स्ट्रिंग ज़रूरी नहीं
-
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(result: BookmarkTreeNode) => void
-
नतीजा
-
रिटर्न
-
Promise<BookmarkTreeNode>
Chrome 90 और उसके बाद के वर्शनमेनिफ़ेस्ट के तीसरे और उसके बाद के वर्शन में, प्रॉमिस का इस्तेमाल किया जा सकता है. हालांकि, पुराने सिस्टम के साथ काम करने की सुविधा के लिए कॉलबैक उपलब्ध कराए गए हैं. एक ही फ़ंक्शन कॉल में, दोनों का इस्तेमाल नहीं किया जा सकता. प्रोमिस, कॉलबैक में पास किए गए टाइप के साथ ही रिज़ॉल्व होता है.
remove()
chrome.bookmarks.remove(
id: string,
callback?: function,
)
बुकमार्क या खाली बुकमार्क फ़ोल्डर को हटाता है.
पैरामीटर
-
आईडी
स्ट्रिंग
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:() => void
रिटर्न
-
Promise<void>
Chrome 90 और उसके बाद के वर्शनमेनिफ़ेस्ट के तीसरे और उसके बाद के वर्शन में, प्रॉमिस का इस्तेमाल किया जा सकता है. हालांकि, पुराने सिस्टम के साथ काम करने की सुविधा के लिए कॉलबैक उपलब्ध कराए गए हैं. एक ही फ़ंक्शन कॉल में, दोनों का इस्तेमाल नहीं किया जा सकता. प्रोमिस, कॉलबैक में पास किए गए टाइप के साथ ही रिज़ॉल्व होता है.
removeTree()
chrome.bookmarks.removeTree(
id: string,
callback?: function,
)
किसी बुकमार्क फ़ोल्डर को बार-बार हटाता है.
पैरामीटर
-
आईडी
स्ट्रिंग
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:() => void
रिटर्न
-
Promise<void>
Chrome 90 और उसके बाद के वर्शनमेनिफ़ेस्ट के तीसरे और उसके बाद के वर्शन में, प्रॉमिस का इस्तेमाल किया जा सकता है. हालांकि, पुराने सिस्टम के साथ काम करने की सुविधा के लिए कॉलबैक उपलब्ध कराए गए हैं. एक ही फ़ंक्शन कॉल में, दोनों का इस्तेमाल नहीं किया जा सकता. प्रोमिस, कॉलबैक में पास किए गए टाइप के साथ ही रिज़ॉल्व होता है.
search()
chrome.bookmarks.search(
query: string | object,
callback?: function,
)
यह, दी गई क्वेरी से मैच करने वाले BookmarkTreeNodes को खोजता है. किसी ��ब्जेक्ट के साथ बताई गई क्वेरी, बताई गई सभी प्रॉपर्टी से मैच करने वाले BookmarkTreeNodes बनाती हैं.
पैरामीटर
-
क्वेरी
स्ट्रिंग | ऑब्जेक्ट
शब्दों और कोट किए गए वाक्यांशों की स्ट्रिंग, जो बुकमार्क के यूआरएल और टाइटल से मेल खाती है या कोई ऑब्जेक्ट. अगर कोई ऑब्जेक्ट है, तो प्रॉपर्टी
query
,url
, औरtitle
तय की जा सकती हैं. साथ ही, तय की गई सभी प्रॉपर्टी से मैच करने वाले बुकमार्क बनाए जाएंगे.-
क्वेरी
स्ट्रिंग ज़रूरी नहीं
शब्दों और कोट किए गए वाक्यांशों की स्ट्रिंग, जो बुकमार्क के यूआरएल और टाइटल से मैच होती है.
-
title
स्ट्रिंग ज़रूरी नहीं
बुकमार्क का टाइटल; एग्ज़ैक्ट मैच.
-
url
स्ट्रिंग ज़रूरी नहीं
बुकमार्क का यूआरएल, जो एग्ज़ैक्ट मैच करता हो. ध्यान दें कि फ़ोल्डर का कोई यूआरएल नहीं होता.
-
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(results: BookmarkTreeNode[]) => void
-
नतीजे
-
रिटर्न
-
Promise<BookmarkTreeNode[]>
Chrome 90 और उसके बाद के वर्शनमेनिफ़ेस्ट के तीसरे और उसके बाद के वर्शन में, प्रॉमिस का इस्तेमाल किया जा सकता है. हालांकि, पुराने सिस्टम के साथ काम करने की सुविधा के लिए कॉलबैक उपलब्ध कराए गए हैं. एक ही फ़ंक्शन कॉल में, दोनों का इस्तेमाल नहीं किया जा सकता. प्रोमिस, कॉलबैक में पास किए गए टाइप के साथ ही रिज़ॉल्व होता है.
update()
chrome.bookmarks.update(
id: string,
changes: object,
callback?: function,
)
किसी बुकमार्क या फ़ोल्डर की प्रॉपर्टी अपडेट करता है. सिर्फ़ उन प्रॉपर्टी की जानकारी दें जिनमें बदलाव करना है. जिन प्रॉपर्टी की जानकारी नहीं दी गई है उनमें कोई बदलाव नहीं किया जाएगा. ध्यान दें: फ़िलहाल, सिर्फ़ 'टाइटल' और 'यूआरएल' एट्रिब्यूट का इस्तेमाल किया जा सकता है.
पैरामीटर
-
आईडी
स्ट्रिंग
-
बदलाव
ऑब्जेक्ट
-
title
स्ट्रिंग ज़रूरी नहीं
-
url
स्ट्रिंग ज़रूरी नहीं
-
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(result: BookmarkTreeNode) => void
-
नतीजा
-
रिटर्न
-
Promise<BookmarkTreeNode>
Chrome 90 और उसके बाद के वर्शनमेनिफ़ेस्ट के तीसरे और उसके बाद के वर्शन में, प्रॉमिस का इस्तेमाल किया जा सकता है. हालांकि, पुराने सिस्टम के साथ काम करने की सुविधा के लिए कॉलबैक उपलब्ध कराए गए हैं. एक ही फ़ंक्शन कॉल में, दोनों का इस्तेमाल नहीं किया जा सकता. प्रोमिस, कॉलबैक में पास किए गए टाइप के साथ ही रिज़ॉल्व होता है.
इवेंट
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
���� ��वेंट त�� ट्रिगर होता है, जब कोई बुकमार्क या फ़ोल्डर बदलता है. ध्यान दें: फ़िलहाल, सिर्फ़ टाइटल और यूआरएल में बदलाव होने पर यह ट्रिगर होता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callback
पैरामीटर इस तरह दिखता है:(id: string, changeInfo: object) => void
-
आईडी
स्ट्रिंग
-
changeInfo
ऑब्जेक्ट
-
title
स्ट्रिंग
-
url
स्ट्रिंग ज़रूरी नहीं
-
-
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
स्ट्रिंग
-
-