chrome.devtools.inspectedWindow

refresh date: 2026-09-25 robots: noindex

ब्यौरा

जांच की गई विंडो के साथ इंटरैक्ट करने के लिए, chrome.devtools.inspectedWindow एपीआई का इस्तेमाल करें: जांच किए गए पेज के लिए टैब आईडी पाएं, जांच की गई विंडो के संदर्भ में कोड का आकलन करें, पेज को फिर से लोड करें या पेज में मौजूद संसाधनों की सूची पाएं.

मेनिफ़ेस्ट

इस एपीआई का इस्तेमाल करने के लिए, मेनिफ़ेस्ट में इन कुंजियों का एलान करना ज़रूरी है.

"devtools_page"

जांच की गई विंडो के साथ इंटरैक्ट करने के लिए, chrome.devtools.inspectedWindow का इस्तेमाल करें: जांच किए गए पेज के लिए टैब आईडी पाएं, जांच की गई विंडो के संदर्भ में कोड का आकलन करें, पेज को फिर से लोड करें या पेज में मौजूद संसाधनों की सूची पाएं.

डेवलपर टूल एपीआई इस्तेमाल करने के बारे में सामान्य जानकारी पाने के लिए, DevTools एपीआई की खास जानकारी देखें.

खास जानकारी

tabId प्रॉपर्टी, टैब आइडेंटिफ़ायर उपलब्ध कराती है. इसका इस्तेमाल, chrome.tabs.* एपीआई कॉल के साथ किया जा सकता है. हालांकि, कृपया ध्यान दें कि सुरक्षा की वजहों से, chrome.tabs.* एपीआई को डेवलपर टूल एक्सटेंशन पेजों पर नहीं दिखाया जाता है. आपको टैब आईडी को बैकग्राउंड पेज पर पास करना होगा और वहां से chrome.tabs.* एपीआई फ़ंक्शन को कॉल करना होगा.

जांच किए गए पेज को फिर से लोड करने के लिए, reload तरीके का इस्तेमाल किया जा सकता है. इसके अलावा, कॉलर यह तय कर सकता है कि उपयोगकर्ता एजेंट स्ट्रिंग को बदला जाए या नहीं. साथ ही, वह ऐसी स्क्रिप्ट तय कर सकता है जिसे पेज लोड होने पर तुरंत इंजेक्ट किया जाएगा या कैश मेमोरी में सेव किए गए संसाधनों को फिर से लोड करने का विकल्प तय कर सकता है.

जांच किए गए पेज में मौजूद संसाधनों (दस्तावेज़, स्टाइलशीट, स्क्रिप्ट, इमेज वगैरह) की सूची पाने के लिए, getResources कॉल और onResourceContent इवेंट का इस्तेमाल करें. Resource क्लास के getContent और setContent तरीकों के साथ-साथ onResourceContentCommitted इवेंट का इस्तेमाल, संसाधन के कॉन्टेंट में बदलाव करने के लिए किया जा सकता है. उदाहरण के लिए, किसी बाहरी एडिटर की मदद से.

जांच की जा रही विंडो में कोड चलाना

eval तरीके से, एक्सटेंशन को जांचे गए पेज के संदर्भ में JavaScript कोड को लागू करने की सुविधा मिलती है. यह तरीका सही संदर्भ में इस्तेमाल किए जाने पर काफ़ी असरदार होता है. हालांकि, गलत तरीके से इस्तेमाल किए जाने पर यह खतरनाक हो सकता है. tabs.executeScript वाले तरीके का इस्तेमाल करें. हालांकि, अगर आपको eval वाले तरीके से मिलने वाली कोई खास सुविधा चाहिए, तो उस तरीके का इस्तेमाल करें.

eval और tabs.executeScript के तरीकों के बीच मुख्य अंतर यहां दिए गए हैं:

  • eval तरीके में, कोड की जांच करने के लिए आइसोलेटेड वर्ल्ड का इस्तेमाल नहीं किया जाता. इसलिए, जिस विंडो की जांच की जा रही है उसकी JavaScript स्थिति को कोड ऐक्सेस कर सकता है. इस तरीके का इस्तेमाल तब करें, जब आपको जांचे गए पेज के JavaScript स्टेटस को ऐक्सेस करना हो.
  • जिस कोड का आकलन किया जा रहा है उसके एक्ज़ीक्यूशन कॉन्टेक्स्ट में, डेवलपर टूल कंसोल एपीआई शामिल होता है. उदाहरण के लिए, कोड में inspect और $0 का इस्तेमाल किया जा सकता है.
  • जांच किए गए कोड से कोई वैल्यू मिल सकती है, जिसे एक्सटेंशन कॉलबैक को पास किया जाता है. वापस की गई वैल्यू, एक मान्य JSON ऑब्जेक्ट होनी चाहिए. इसमें सिर्फ़ प्रिमिटिव JavaScript टाइप और अन्य JSON ऑब्जेक्ट के असाइक्लिक रेफ़रंस शामिल हो सकते हैं. कृपया जांच किए गए पेज से मिले डेटा को प्रोसेस करते समय ज़्यादा सावधानी बरतें. ऐसा इसलिए, क्योंकि एक्ज़ीक्यूशन कॉन्टेक्स्ट को मुख्य रूप से जांचा गया पेज कंट्रोल करता है. नुकसान पहुंचाने वाला पेज, एक्सटेंशन को वापस किए जा रहे डेटा पर असर डाल सकता है.

ध्यान दें कि किसी पेज में कई अलग-अलग JavaScript एक्ज़ीक्यूशन कॉन्टेक्स्ट शामिल हो सकते हैं. हर फ़्रेम का अपना कॉन्टेक्स्ट होता है. साथ ही, हर उस एक्सटेंशन के लिए एक अतिरिक्त कॉन्टेक्स्ट होता है जिसकी कॉन्टेंट स्क्रिप्ट उस फ़्रेम में चल रही होती हैं.

डिफ़ॉल्ट रूप से, eval तरीका, जांचे गए पेज के मुख्य फ़्रेम के संदर्भ में लागू होता है.

eval तरीके में, दूसरा आर्ग्युमेंट देना ज़रूरी नहीं है. इसका इस्तेमाल करके, उस कॉन्टेक्स्ट के बारे में बताया जा सकता है जिसमें कोड का आकलन किया जाता है. इस options ऑब्जेक्ट में, इनमें से एक या इससे ज़्यादा कुंजियां शामिल हो सकती हैं:

frameURL
इसका इस्तेमाल, जांच किए गए पेज के मुख्य फ़्रेम के अलावा किसी अन्य फ़्रेम की जानकारी देने के लिए करें.
contextSecurityOrigin
इसका इस्तेमाल, वेब ऑरिजिन के हिसाब से, दिए गए फ़्रेम में कोई कॉन्टेक्स्ट चुनने के लिए करें.
useContentScriptContext
अगर यह सही है, तो स्क्रिप्ट को उसी कॉन्टेक्स्ट में चलाएं जिसमें एक्सटेंशन की कॉन्टेंट स्क्रिप्ट चलाई जाती हैं. यह एक्सटेंशन के वेब ऑरिजिन को कॉन्टेक्स्ट सिक्योरिटी ऑरिजिन के तौर पर तय करने के बराबर है. इसका इस्तेमाल, कॉन्टेंट स्क्रिप्ट के साथ डेटा शेयर करने के लिए किया जा सकता है.

उदाहरण

यहां दिया गया कोड, जांचे गए पेज पर इस्तेमाल किए गए jQuery के वर्शन की जांच करता है:

chrome.devtools.inspectedWindow.eval(
  "jQuery.fn.jquery",
  function(result, isException) {
    if (isException) {
      console.log("the page is not using jQuery");
    } else {
      console.log("The page is using jQuery v" + result);
    }
  }
);

इस एपीआई को आज़माने के लिए, chrome-extension-samples रिपॉज़िटरी से devtools API के उदाहरण इंस्टॉल करें.

टाइप

Resource

जांच किए गए पेज में मौजूद कोई संसाधन, जैसे कि कोई दस्तावेज़, स्क्रिप्ट या इमेज.

प्रॉपर्टी

  • url

    स्ट्रिंग

    संसाधन का यूआरएल.

  • getContent

    void

    वादा

    संसाधन का कॉन्टेंट फ़ेच करता है.

    getContent फ़ंक्शन इस तरह दिखता है:

    (callback?: function) => {...}

    • कॉलबैक

      function ज़रूरी नहीं

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

      (response: object) => void

      • जवाब

        ऑब्जेक्ट

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

        एक ऑब्जेक्ट, जिसमें संसाधन का कॉन्टेंट और उसकी एन्कोडिंग शामिल होती है.

        • कॉन्टेंट

          स्ट्रिंग

          संसाधन का कॉन्टेंट (संभावित तौर पर कोड में बदला गया).

        • एन्कोडिंग

          स्ट्रिंग

          अगर कॉन्टेंट को एन्कोड नहीं किया गया है, तो यह खाली रहता है. अगर एन्कोड किया गया है, तो एन्कोडिंग का नाम दिखता है. फ़िलहाल, सिर्फ़ base64 का इस्तेमाल किया जा सकता है.

    • returns

      Promise<object>

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

      अनुरोध पूरा होने पर, संसाधन का कॉन्टेंट पाने वाला फ़ंक्शन.

      प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

  • setContent

    void

    वादा

    इससे संसाधन का कॉन्टेंट सेट होता है.

    setContent फ़ंक्शन इस तरह दिखता है:

    (content: string, commit: boolean, callback?: function) => {...}

    • कॉन्टेंट

      स्ट्रिंग

      संसाधन का नया कॉन्टेंट. फ़िलहाल, सिर्फ़ टेक्स्ट टाइप वाले रिसॉर्स इस्तेमाल किए जा सकते हैं.

    • डेटाबेस के बदलावों को सेव करें

      बूलियन

      अगर उपयोगकर्ता ने संसाधन में बदलाव कर लिया है और संसाधन का नया कॉन्टेंट सेव किया जाना चाहिए, तो 'सही' पर सेट करें. अगर उपयोगकर्ता ने संसाधन में बदलाव करने के दौरान कोई छोटा-मोटा बदलाव किया है, तो 'गलत' पर सेट करें.

    • कॉलबैक

      function ज़रूरी नहीं

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

      (error?: object) => void

      • गड़बड़ी

        object ज़रूरी नहीं

        अगर संसाधन का कॉन्टेंट सेट हो गया है, तो इसे 'तय नहीं है' पर सेट करें. अगर ऐसा नहीं है, तो गड़बड़ी के बारे में बताएं.

    • returns

      Promise<object>

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

      अनुरोध पूरा होने पर कॉल किया जाने वाला फ़ंक्शन.

      प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

प्रॉपर्टी

tabId

जिस टैब की जांच की जा रही है उसका आईडी. इस आईडी का इस्तेमाल, chrome.tabs.* के साथ किया जा सकता है एपीआई.

टाइप

संख्या

तरीके

eval()

वादा
chrome.devtools.inspectedWindow.eval(
  expression: string,
  options?: object,
  callback?: function,
)
: Promise<object>

यह जांच किए गए पेज के मुख्य फ़्रेम के संदर्भ में, JavaScript एक्सप्रेशन का आकलन करता है. एक्सप्रेशन को JSON के मुताबिक ऑब्जेक्ट में बदलना चाहिए. ऐसा न होने पर, गड़बड़ी का मैसेज दिखता है. eval फ़ंक्शन, DevTools की तरफ़ से होने वाली गड़बड़ी या आकलन के दौरान होने वाली JavaScript अपवाद की रिपोर्ट कर सकता है. दोनों ही मामलों में, कॉलबैक का result पैरामीटर undefined होता है. DevTools की ओर से गड़बड़ी होने पर, isException पैरामीटर शून्य नहीं होता. साथ ही, isError को 'सही' पर और code को गड़बड़ी के कोड पर सेट किया जाता है. JavaScript की गड़बड़ी होने पर, isException को 'सही' पर सेट किया जाता है. साथ ही, value को थ्रो किए गए ऑब्जेक्ट की स्ट्रिंग वैल्यू पर सेट किया जाता है.

पैरामीटर

  • एक्सप्रेशन

    स्ट्रिंग

    आकलन करने के लिए कोई एक्सप्रेशन.

  • विकल्प

    object ज़रूरी नहीं

    विकल्प पैरामीटर में एक या उससे ज़्यादा विकल्प हो सकते हैं.

    • frameURL

      string ज़रूरी नहीं

      अगर यूआरएल दिया गया है, तो एक्सप्रेशन का आकलन उस iframe पर किया जाता है जिसका यूआरएल, दिए गए यूआरएल से मेल खाता है. डिफ़ॉल्ट रूप से, एक्सप्रेशन का आकलन, जांचे गए पेज के सबसे ऊपर मौजूद फ़्रेम में किया जाता है.

    • scriptExecutionContext

      string ज़रूरी नहीं

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

      किसी एक्सटेंशन की कॉन्टेंट स्क्रिप्ट के संदर्भ में एक्सप्रेशन का आकलन करें. यह एक्सटेंशन, बताए गए ऑरिजिन से मैच करता है. अगर scriptExecutionContext दिया गया है, तो यह useContentScriptContext पर 'सही है' सेटिंग को बदल देता है.

    • useContentScriptContext

      बूलियन ज़रूरी नहीं

      कॉल करने वाले एक्सटेंशन की कॉन्टेंट स्क्रिप्ट के संदर्भ में एक्सप्रेशन का आकलन करें. हालांकि, इसके लिए ज़रूरी है कि कॉन्टेंट स्क्रिप्ट को पहले से ही जांचे गए पेज में इंजेक्ट किया गया हो. अगर ऐसा नहीं है, तो एक्सप्रेशन का आकलन नहीं किया जाता. साथ ही, कॉलबैक को अपवाद पैरामीटर के साथ शुरू किया जाता है. यह पैरामीटर, ऐसे ऑब्जेक्ट पर सेट होता है जिसमें isError फ़ील्ड को 'सही' पर और code फ़ील्ड को E_NOTFOUND पर सेट किया गया हो.

  • कॉलबैक

    function ज़रूरी नहीं

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

    (response: object) => void

    • जवाब

      ऑब्जेक्ट

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

      आकलन का नतीजा और अपवाद की जानकारी.

      • exceptionInfo

        ऑब्जेक्ट

        अगर एक्सप्रेशन का आकलन करते समय कोई गड़बड़ी होती है, तो गड़बड़ी की जानकारी देने वाला ऑब्जेक्ट.

        • कोड

          स्ट्रिंग

          अगर एक्सप्रेशन का आकलन करने से पहले, DevTools की ओर से गड़बड़ी हुई है, तो सेट करें.

        • ब्यौरा

          स्ट्रिंग

          अगर एक्सप्रेशन का आकलन करने से पहले, DevTools की ओर से गड़बड़ी हुई है, तो सेट करें.

        • विवरण

          any[]

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

        • isError

          बूलियन

          अगर एक्सप्रेशन का आकलन करने से पहले, DevTools की ओर से गड़बड़ी हुई है, तो सेट करें.

        • isException

          बूलियन

          अगर जांच किए गए कोड से कोई ऐसी गड़बड़ी होती है जिसे मैनेज नहीं किया जा सकता, तो इसे सेट करें.

        • मान

          स्ट्रिंग

          अगर जांच किए गए कोड से कोई ऐसी गड़बड़ी होती है जिसे मैनेज नहीं किया जा सकता, तो इसे सेट करें.

      • नतीजा

        ऑब्जेक्ट

        आकलन का नतीजा.

रिटर्न

  • Promise<object>

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

    यह फ़ंक्शन, आकलन पूरा होने पर कॉल किया जाता है.

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

getResources()

वादा
chrome.devtools.inspectedWindow.getResources(
  callback?: function,
)
: Promise<Resource[]>

यह जांचे गए पेज से संसाधनों की सूची को वापस लाता है.

पैरामीटर

  • कॉलबैक

    function ज़रूरी नहीं

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

    (resources: Resource[]) => void

    • उपलब्ध संसाधन

      पेज में मौजूद संसाधन.

रिटर्न

  • वादा<संसाधन[]>

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

    अनुरोध पूरा होने पर, संसाधनों की सूची पाने वाला फ़ंक्शन.

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

reload()

chrome.devtools.inspectedWindow.reload(
  reloadOptions?: object,
)
: void

जांच किए गए पेज को फिर से लोड करता है.

पैरामीटर

  • reloadOptions

    object ज़रूरी नहीं

    • ignoreCache

      बूलियन ज़रूरी नहीं

      सही होने पर, लोडर load इवेंट के ट्रिगर होने से पहले लोड किए गए सभी पेज रिसॉर्स के लिए, कैश मेमोरी को बायपास कर देगा. इसका असर, जांच की जा रही विंडो या डेवलपर टूल विंडो में Ctrl+Shift+R दबाने जैसा ही होता है.

    • injectedScript

      string ज़रूरी नहीं

      अगर स्क्रिप्ट तय की गई है, तो पेज लोड होते ही उसे जांचे गए पेज के हर फ़्रेम में इंजेक्ट कर दिया जाएगा. ऐसा फ़्रेम की किसी भी स्क्रिप्ट से पहले किया जाएगा. इसके बाद, पेज को फिर से लोड करने पर स्क्रिप्ट इंजेक्ट नहीं होगी. उदाहरण के लिए, अगर उपयोगकर्ता Ctrl+R दबाता है.

    • userAgent

      string ज़रूरी नहीं

      अगर स्ट्रिंग की वैल्यू दी गई है, तो यह जांचे गए पेज के रिसॉर्स लोड करते समय भेजे गए User-Agent एचटीटीपी हेडर की वैल्यू को बदल देगी. यह स्ट्रिंग, navigator.userAgent प्रॉपर्टी की वैल्यू को भी बदल देगी. यह वैल्यू, जांचे जा रहे पेज में चल रही किसी भी स्क्रिप्ट को दिखाई जाती है.

इवेंट

onResourceAdded

chrome.devtools.inspectedWindow.onResourceAdded.addListener(
  callback: function,
)

यह तब ट्रिगर होता है, जब जांच किए गए पेज में कोई नया संसाधन जोड़ा जाता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (resource: Resource) => void

onResourceContentCommitted

chrome.devtools.inspectedWindow.onResourceContentCommitted.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब संसाधन का नया वर्शन कमिट किया जाता है. उदाहरण के लिए, जब उपयोगकर्ता डेवलपर टूल में संसाधन का कोई एडिट किया गया वर्शन सेव करता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (resource: Resource, content: string) => void

    • रिसॉर्स
    • कॉन्टेंट

      स्ट्रिंग