ब्यौरा
ब्राउज़र विंडो के साथ इंटरैक्ट करने के लिए, chrome.windows एपीआई का इस्तेमाल करें. इस एपीआई का इस्तेमाल करके, ब्राउज़र में विंडो बनाई जा सकती हैं, उनमें बदलाव किया जा सकता है, और उन्हें फिर से व्यवस्थित किया जा सकता है.
अनुमतियां
अनुरोध करने पर, windows.Window में tabs.Tab ऑब्जेक्ट की एक कैटगरी होती है. अगर आपको tabs.Tab की url, pendingUrl, title या favIconUrl प्रॉपर्टी ऐक्सेस करनी हैं, तो आपको अपने मेनिफ़ेस्ट में "tabs" अनुमति का एलान करना होगा. उदाहरण के लिए:
{
"name": "My extension",
...
"permissions": ["tabs"],
...
}
कॉन्सेप्ट और इस्तेमाल करने का तरीका
मौजूदा विंडो
एक्सटेंशन सिस्टम में कई फ़ंक्शन, एक वैकल्पिक windowId आर्ग्युमेंट लेते हैं. यह डिफ़ॉल्ट रूप से, मौजूदा विंडो पर सेट होता है.
मौजूदा विंडो वह विंडो होती है जिसमें मौजूद कोड फ़िलहाल चल रहा होता है. यह समझना ज़रूरी है कि यह सबसे ऊपर या फ़ोकस की गई विंडो से अलग हो सकता है.
उदाहरण के लिए, मान लें कि कोई एक्सटेंशन एक ही एचटीएमएल फ़ाइल से कुछ टैब या विंडो बनाता है. साथ ही, उस एचटीएमएल फ़ाइल में tabs.query() को कॉल किया जाता है. मौजूदा विंडो वह विंडो होती है जिसमें कॉल करने वाला पेज मौजूद होता है. भले ही, सबसे ऊपर वाली विंडो कोई भी हो.
सर्विस वर्कर के मामले में, मौजूदा विंडो की वैल्यू पिछली ऐक्टिव विंडो पर वापस आ जाती है. कुछ मामलों में, बैकग्राउंड पेजों के लिए कोई मौजूदा विंडो नहीं हो सकती.
उदाहरण
इस एपीआई को आज़माने के लिए, chrome-extension-samples रिपॉज़िटरी से windows API example इंस्टॉल करें.
टाइप
CreateType
इससे पता चलता है कि किस तरह की ब्राउज़र विंडो बनानी है. 'पैनल' अब काम नहीं करता है. यह सिर्फ़ Chrome OS पर, अनुमति वाली सूची में शामिल मौजूदा एक्सटेंशन के लिए उपलब्ध है.
Enum
"normal"
इससे विंडो को स्टैंडर्ड विंडो के तौर पर सेट किया जाता है.
"popup"
इस विकल्प का इस्तेमाल करके, विंडो को पॉप-अप विंडो के तौर पर सेट किया जाता है.
"panel"
विंडो को पैनल के तौर पर सेट करता है.
QueryOptions
प्रॉपर्टी
-
अपने-आप जानकारी भर जाना
boolean optional
अगर यह वैल्यू सही है, तो
windows.Windowऑब्जेक्ट मेंtabsप्रॉपर्टी होती है. इसमेंtabs.Tabऑब्जेक्ट की सूची होती है.Tabऑब्जेक्ट में सिर्फ़url,pendingUrl,title, औरfavIconUrlप्रॉपर्टी शामिल होती हैं. ऐसा तब होता है, जब एक्सटेंशन की मेनिफ़ेस्ट फ़ाइल में"tabs"अनुमति शामिल हो. -
windowTypes
WindowType[] optional
अगर यह सेट है, तो
windows.Windowको उसके टाइप के आधार पर फ़िल्टर किया जाता है. अगर यह नीति सेट नहीं की गई है, तो डिफ़ॉल्ट फ़िल्टर['normal', 'popup']पर सेट होता है.
Window
प्रॉपर्टी
-
alwaysOnTop
बूलियन
इससे पता चलता है कि विंडो को हमेशा सबसे ऊपर दिखने के लिए सेट किया गया है या नहीं.
-
फ़ोकस किया गया
बूलियन
इससे पता चलता है कि फ़िलहाल, विंडो फ़ोकस में है या नहीं.
-
ऊंचाई
number ज़रूरी नहीं
फ़्रेम के साथ विंडो की ऊंचाई, पिक्सल में. कुछ मामलों में, किसी विंडो को
heightप्रॉपर्टी असाइन नहीं की जा सकती. उदाहरण के लिए,sessionsएपीआई से बंद की गई विंडो के बारे में क्वेरी करते समय. -
आईडी
number ज़रूरी नहीं
विंडो का आईडी. ब्राउज़र सेशन में विंडो आईडी यूनीक होते हैं. कुछ मामलों में, किसी विंडो को
IDप्रॉपर्टी असाइन नहीं की जा सकती. उदाहरण के लिए,sessionsएपीआई का इस्तेमाल करके विंडो क्वेरी करते समय. ऐसे मामले में, सेशन आईडी मौजूद हो सकता है. -
गुप्त
बूलियन
विंडो गुप्त है या नहीं.
-
बाएं
number ज़रूरी नहीं
स्क्रीन के बाईं ओर से विंडो का ऑफ़सेट, पिक्सल में. कुछ मामलों में, किसी विंडो को
leftप्रॉपर्टी असाइन नहीं की जा सकती. उदाहरण के लिए,sessionsएपीआई से बंद की गई विंडो के बारे में क्वेरी करते समय. -
sessionId
string ज़रूरी नहीं है
यह सेशन आईडी, किसी विंडो की खास पहचान करने के लिए इस्तेमाल किया जाता है. इसे
sessionsएपीआई से हासिल किया जाता है. -
राज्य
WindowState ज़रूरी नहीं है
इस ब्राउज़र विंडो की स्थिति.
-
टैब
Tab[] ज़रूरी नहीं है
विंडो में मौजूद मौजूदा टैब को दिखाने वाले
tabs.Tabऑब्जेक्ट का कलेक्शन. -
ऊपर
number ज़रूरी नहीं
स्क्रीन के सबसे ऊपर वाले किनारे से विंडो का ऑफ़सेट, पिक्सल में. कुछ मामलों में, किसी विंडो को
topप्रॉपर्टी असाइन नहीं की जा सकती. उदाहरण के लिए,sessionsएपीआई से बंद की गई विंडो के बारे में क्वेरी करते समय. -
टाइप
WindowType ज़रूरी नहीं है
यह किस तरह की ब्राउज़र विंडो है.
-
चौड़ाई
number ज़रूरी नहीं
फ़्रेम के साथ विंडो की चौड़ाई, पिक्सल में. कुछ मामलों में, किसी विंडो को
widthप्रॉपर्टी असाइन नहीं की जा सकती. उदाहरण के लिए,sessionsएपीआई से बंद की गई विंडो के बारे में क्वेरी करते समय.
WindowState
इस ब्राउज़र विंडो की स्थिति. कुछ मामलों में, किसी विंडो को state प्रॉपर्टी असाइन नहीं की जा सकती. उदाहरण के लिए, sessions एपीआई से बंद की गई विंडो के बारे में क्वेरी करते समय.
Enum
"normal"
विंडो की सामान्य स्थिति (न तो छोटी की गई हो, न बड़ी की गई हो, और न ही फ़ुलस्क्रीन पर हो).
"minimized"
विंडो को छोटा किया गया है.
"maximized"
विंडो को बड़ा किया गया है.
"fullscreen"
फ़ुलस्क्रीन विंडो की स्थिति.
WindowType
यह ब्राउज़र विंडो का टाइप है. कुछ मामलों में, किसी विंडो को type प्रॉपर्टी असाइन नहीं की जा सकती. उदाहरण के लिए, sessions API से बंद की गई विंडो के बारे में क्वेरी करते समय.
Enum
"normal"
यह ब्राउज़र की सामान्य विंडो होती है.
"popup"
ब्राउज़र का पॉपअप.
"panel"
इस एपीआई में अब इस्तेमाल नहीं किया जाता. Chrome ऐप्लिकेशन की पैनल-स्टाइल वाली विंडो. एक्सटेंशन सिर्फ़ अपनी पैनल विंडो देख सकते हैं.
"app"
इस एपीआई में अब इस्तेमाल नहीं किया जाता. Chrome ऐप्लिकेशन की विंडो. एक्सटेंशन सिर्फ़ अपने ऐप्लिकेशन की विंडो देख सकते हैं.
"devtools"
डेवलपर टूल विंडो.
प्रॉपर्टी
WINDOW_ID_CURRENT
windowId वैल्यू, मौजूदा विंडो को दिखाती है.
मान
-2
WINDOW_ID_NONE
windowId की वह वैल्यू जो Chrome ब्राउज़र की विंडो के न होने की जानकारी देती है.
मान
-1
तरीके
create()
chrome.windows.create(
createData?: object,
): Promise<Window | undefined>
यह फ़ंक्शन, नई ब्राउज़र विंडो बनाता है (खोलता है). इसमें साइज़, पोज़िशन या डिफ़ॉल्ट यूआरएल के लिए कोई भी विकल्प दिया जा सकता है.
पैरामीटर
-
createData
ऑब्जेक्ट ज़रूरी नहीं है
-
फ़ोकस किया गया
boolean optional
अगर
true, तो एक ऐक्टिव विंडो खुलती है. अगरfalse, तो इससे इनऐक्टिव विंडो खुलती है. -
ऊंचाई
number ज़रूरी नहीं
नई विंडो की ऊंचाई, पिक्सल में. इसमें फ़्रेम भी शामिल है. अगर इसकी वैल्यू नहीं दी जाती है, तो डिफ़ॉल्ट रूप से सामान्य ऊंचाई सेट होती है.
-
गुप्त
boolean optional
क्या नई विंडो, गुप्त विंडो होनी चाहिए.
-
बाएं
number ज़रूरी नहीं
स्क्रीन के बाएं किनारे से नई विंडो को पोज़िशन करने के लिए पिक्सल की संख्या. अगर इस विकल्प को नहीं चुना जाता है, तो नई विंडो को पिछली विंडो से कुछ दूरी पर खोला जाता है. पैनल के लिए, इस वैल्यू को अनदेखा कर दिया जाता है.
-
setSelfAsOpener
boolean optional
Chrome 64+अगर
true, तो नई विंडो के 'window.opener' को कॉलर पर सेट किया जाता है. साथ ही, यह कॉलर के साथ एक ही ब्राउज़िंग कॉन्टेक्स्ट के यूनिट में होता है. -
राज्य
WindowState ज़रूरी नहीं है
Chrome 44 या इसके बाद का वर्शनविंडो की शुरुआती स्थिति.
minimized,maximized, औरfullscreenराज्यों कोleft,top,widthयाheightके साथ नहीं जोड़ा जा सकता. -
tabId
number ज़रूरी नहीं
उस टैब का आईडी जिसे नई विंडो में जोड़ना है.
-
ऊपर
number ज़रूरी नहीं
स्क्रीन के सबसे ऊपर वाले किनारे से नई विंडो को पोज़िशन करने के लिए पिक्सल की संख्या. अगर इस विकल्प को नहीं चुना जाता है, तो नई विंडो को पिछली विंडो से कुछ दूरी पर खोला जाता है. पैनल के लिए, इस वैल्यू को अनदेखा कर दिया जाता है.
-
टाइप
CreateType ज़रूरी नहीं है
इससे पता चलता है कि किस तरह की ब्राउज़र विंडो बनानी है.
-
url
string | string[] ज़रूरी नहीं
विंडो में टैब के तौर पर खोलने के लिए यूआरएल या यूआरएल का अरे. पूरी तरह से क्वालिफ़ाइड यूआरएल में स्कीम शामिल होनी चाहिए. जैसे, 'http://www.google.com', न कि 'www.google.com'. एक्सटेंशन में, पूरी तरह से क्वालिफ़ाई न किए गए यूआरएल को रिलेटिव माना जाता है. डिफ़ॉल्ट रूप से, यह 'नया टैब' पेज पर सेट होता है.
-
चौड़ाई
number ज़रूरी नहीं
फ़्रेम के साथ नई विंडो की चौड़ाई, पिक्सल में. अगर यह तय नहीं किया गया है, तो डिफ़ॉल्ट रूप से इमेज की चौड़ाई उसकी ओरिजनल चौड़ाई के बराबर होती है.
-
रिटर्न
-
Promise<Window | undefined>
Chrome 88 या इसके बाद का वर्शन
get()
chrome.windows.get(
windowId: number,
queryOptions?: QueryOptions,
): Promise<Window>
किसी विंडो के बारे में जानकारी मिलती है.
पैरामीटर
-
windowId
संख्या
-
queryOptions
QueryOptions ज़रूरी नहीं है
Chrome 88 या इसके बाद का वर्शन
रिटर्न
-
Promise<Window>
Chrome 88 या इसके बाद का वर्शन
getAll()
chrome.windows.getAll(
queryOptions?: QueryOptions,
): Promise<Window[]>
इससे सभी विंडो मिलती हैं.
पैरामीटर
-
queryOptions
QueryOptions ज़रूरी नहीं है
Chrome 88 या इसके बाद का वर्शन
रिटर्न
-
Promise<Window[]>
Chrome 88 या इसके बाद का वर्शन
getCurrent()
chrome.windows.getCurrent(
queryOptions?: QueryOptions,
): Promise<Window>
मौजूदा विंडो को दिखाता है.
पैरामीटर
-
queryOptions
QueryOptions ज़रूरी नहीं है
Chrome 88 या इसके बाद का वर्शन
रिटर्न
-
Promise<Window>
Chrome 88 या इसके बाद का वर्शन
getLastFocused()
chrome.windows.getLastFocused(
queryOptions?: QueryOptions,
): Promise<Window>
यह उस विंडो को दिखाता है जिस पर हाल ही में फ़ोकस किया गया था. आम तौर पर, यह 'सबसे ऊपर' वाली विंडो होती है.
पैरामीटर
-
queryOptions
QueryOptions ज़रूरी नहीं है
Chrome 88 या इसके बाद का वर्शन
रिटर्न
-
Promise<Window>
Chrome 88 या इसके बाद का वर्शन
remove()
chrome.windows.remove(
windowId: number,
): Promise<void>
इससे विंडो और उसमें मौजूद सभी टैब बंद हो जाते हैं.
पैरामीटर
-
windowId
संख्या
रिटर्न
-
Promise<void>
Chrome 88 या इसके बाद का वर्शन
update()
chrome.windows.update(
windowId: number,
updateInfo: object,
): Promise<Window>
यह फ़ंक्शन, किसी विंडो की प्रॉपर्टी अपडेट करता है. सिर्फ़ उन प्रॉपर्टी की वैल्यू बदलें जिनमें बदलाव करना है. जिन प्रॉपर्टी की वैल्यू नहीं बदली गई है उनमें कोई बदलाव नहीं होगा.
पैरामीटर
-
windowId
संख्या
-
updateInfo
ऑब्जेक्ट
-
drawAttention
boolean optional
अगर
trueहै, तो विंडो को इस तरह से दिखाया जाता है कि उपयोगकर्ता का ध्यान उस पर जाए. हालांकि, फ़ोकस की गई विंडो में कोई बदलाव नहीं होता. यह इफ़ेक्ट तब तक दिखता है, जब तक उपयोगकर्ता विंडो पर फ़ोकस नहीं करता. अगर विंडो पहले से फ़ोकस में है, तो इस विकल्प का कोई असर नहीं पड़ता. पिछलाdrawAttentionअनुरोध रद्द करने के लिए, इसेfalseपर सेट करें. -
फ़ोकस किया गया
boolean optional
अगर
trueहै, तो विंडो को सबसे ऊपर ले आता है; इसे 'छोटा किया गया' स्थिति के साथ नहीं जोड़ा जा सकता. अगरfalse, तो z-ऑर्डर में अगली विंडो को सबसे ऊपर ले आता है; इसे 'फ़ुलस्क्रीन' या 'बड़ी की गई' स्थिति के साथ नहीं जोड़ा जा सकता. -
ऊंचाई
number ज़रूरी नहीं
विंडो का साइज़ बदलने के लिए पिक्सल में ऊंचाई. पैनल के लिए, इस वैल्यू को अनदेखा कर दिया जाता है.
-
बाएं
number ज़रूरी नहीं
स्क्रीन के बाएं किनारे से विंडो को पिक्सल में ले जाने का ऑफ़सेट. पैनल के लिए, इस वैल्यू को अनदेखा कर दिया जाता है.
-
राज्य
WindowState ज़रूरी नहीं है
विंडो की नई स्थिति. 'minimized', 'maximized', और 'fullscreen' स्थितियों को 'left', 'top', 'width' या 'height' के साथ नहीं जोड़ा जा सकता.
-
ऊपर
number ज़रूरी नहीं
स्क्रीन के सबसे ऊपर वाले किनारे से विंडो को पिक्सल में ले जाने का ऑफ़सेट. पैनल के लिए, इस वैल्यू को अनदेखा कर दिया जाता है.
-
चौड़ाई
number ज़रूरी नहीं
विंडो का साइज़ बदलने के लिए, पिक्सल में चौड़ाई. पैनल के लिए, इस वैल्यू को अनदेखा कर दिया जाता है.
-
रिटर्न
-
Promise<Window>
Chrome 88 या इसके बाद का वर्शन
इवेंट
onBoundsChanged
chrome.windows.onBoundsChanged.addListener(
callback: function,
)
इस इवेंट को तब ट्रिगर किया जाता है, जब विंडो का साइज़ बदला जाता है. यह इवेंट सिर्फ़ तब भेजा जाता है, जब नए डाइमेंशन लागू हो जाते हैं. यह इवेंट, बदलाव के दौरान नहीं भेजा जाता.
onCreated
chrome.windows.onCreated.addListener(
callback: function,
filters?: object,
)
जब कोई विंडो बनाई जाती है, तब यह इवेंट ट्रिगर होता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
Chrome 46 या इसके बाद का वर्शनcallbackपैरामीटर ऐसा दिखता है:(window: Window) => void
-
विंडो
बनाई गई विंडो की जानकारी.
-
-
फ़िल्टर
ऑब्जेक्ट ज़रूरी नहीं है
-
windowTypes
ऐसी शर्तें जिन्हें बनाई जा रही विंडो के टाइप को पूरा करना होगा. डिफ़ॉल्ट रूप से, यह
['normal', 'popup']को पूरा करता है.
-
onFocusChanged
chrome.windows.onFocusChanged.addListener(
callback: function,
filters?: object,
)
इस इवेंट को तब ट्रिगर किया जाता है, जब फ़ोकस की गई मौजूदा विंडो बदल जाती है. अगर Chrome की सभी विंडो पर फ़ोकस नहीं है, तो chrome.windows.WINDOW_ID_NONE दिखाता है. ध्यान दें: कुछ Linux विंडो मैनेजर पर, एक Chrome विंडो से दूसरी Chrome विंडो पर स्विच करने से पहले, WINDOW_ID_NONE हमेशा तुरंत भेजा जाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
Chrome 46 या इसके बाद का वर्शनcallbackपैरामीटर ऐसा दिखता है:(windowId: number) => void
-
windowId
संख्या
फ़ोकस की गई नई विंडो का आईडी.
-
-
फ़िल्टर
ऑब्जेक्ट ज़रूरी नहीं है
-
windowTypes
वे शर्तें जिन्हें विंडो के हटाए जा रहे टाइप को पूरा करना होगा. डिफ़ॉल्ट रूप से, यह
['normal', 'popup']को पूरा करता है.
-
onRemoved
chrome.windows.onRemoved.addListener(
callback: function,
filters?: object,
)
जब कोई विंडो हटा दी जाती है (बंद कर दी जाती है), तब यह इवेंट ट्रिगर होता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
Chrome 46 या इसके बाद का वर्शनcallbackपैरामीटर ऐसा दिखता है:(windowId: number) => void
-
windowId
संख्या
हटाए गए विंडो का आईडी.
-
-
फ़िल्टर
ऑब्जेक्ट ज़रूरी नहीं है
-
windowTypes
वे शर्तें जिन्हें विंडो के हटाए जा रहे टाइप को पूरा करना होगा. डिफ़ॉल्ट रूप से, यह
['normal', 'popup']को पूरा करता है.
-