chrome.windows

ब्यौरा

ब्राउज़र विंडो के साथ इंटरैक्ट करने के लिए, 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 44 या इसके बाद का वर्शन

इससे पता चलता है कि किस तरह की ब्राउज़र विंडो बनानी है. 'पैनल' अब काम नहीं करता है. यह सिर्फ़ Chrome OS पर, अनुमति वाली सूची में शामिल मौजूदा एक्सटेंशन के लिए उपलब्ध है.

Enum

"normal"
इससे विंडो को स्टैंडर्ड विंडो के तौर पर सेट किया जाता है.

"popup"
इस विकल्प का इस्तेमाल करके, विंडो को पॉप-अप विंडो के तौर पर सेट किया जाता है.

"panel"
विंडो को पैनल के तौर पर सेट करता है.

QueryOptions

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

प्रॉपर्टी

  • अपने-आप जानकारी भर जाना

    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

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

इस ब्राउज़र विंडो की स्थिति. कुछ मामलों में, किसी विंडो को state प्रॉपर्टी असाइन नहीं की जा सकती. उदाहरण के लिए, sessions एपीआई से बंद की गई विंडो के बारे में क्वेरी करते समय.

Enum

"normal"
विंडो की सामान्य स्थिति (न तो छोटी की गई हो, न बड़ी की गई हो, और न ही फ़ुलस्क्रीन पर हो).

"minimized"
विंडो को छोटा किया गया है.

"maximized"
विंडो को बड़ा किया गया है.

"fullscreen"
फ़ुलस्क्रीन विंडो की स्थिति.

WindowType

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

यह ब्राउज़र विंडो का टाइप है. कुछ मामलों में, किसी विंडो को 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 86 या इसके बाद के वर्शन
chrome.windows.onBoundsChanged.addListener(
  callback: function,
)

इस इवेंट को तब ट्रिगर किया जाता है, जब विंडो का साइज़ बदला जाता है. यह इवेंट सिर्फ़ तब भेजा जाता है, जब नए डाइमेंशन लागू हो जाते हैं. यह इवेंट, बदलाव के दौरान नहीं भेजा जाता.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (window: Window) => void

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'] को पूरा करता है.