ब्यौरा
जांच की गई विंडो से इंटरैक्ट करने के लिए, chrome.devtools.inspectedWindow
API का इस्तेमाल करें: जांच किए गए पेज के लिए टैब आईडी पाएं, जांच की गई विंडो के हिसाब से कोड का आकलन करें, पेज को फिर से लोड करें या पेज में मौजूद संसाधनों की सूची पाएं.
मेनिफ़ेस्ट
जांच की गई विंडो से इंटरैक्ट करने के लिए, chrome.devtools.inspectedWindow
का इस्तेमाल करें: इसके लिए टैब आईडी पाएं
वह जांचा गया पेज, जिस विंडो की जांच की गई है उसके संदर्भ में कोड का आकलन करें, पेज को फिर से लोड करें या
पेज में मौजूद संसाधनों की सूची पर क्लिक करें.
डेवलपर टूल एपीआई इस्तेमाल करने के बारे में सामान्य जानकारी के लिए, DevTools API की खास जानकारी देखें.
खास जानकारी
tabId
प्रॉपर्टी से टैब आइडेंटिफ़ायर मिलता है, जिसे chrome.tabs.*
के साथ इस्तेमाल किया जा सकता है
एपीआई कॉल. हालांकि, कृपया ध्यान रखें कि chrome.tabs.*
एपीआई को डेवलपर टूल की अनुमति नहीं दी जाती
सुरक्षा से जुड़ी वजहों के चलते एक्सटेंशन पेज इस्तेमाल किए जा सकते हैं—आपको टैब आईडी को बैकग्राउंड में पास करना होगा
पेज पर जाएं और वहां से chrome.tabs.*
एपीआई फ़ंक्शन शुरू करें.
reload
तरीके का इस्तेमाल, जांच किए गए पेज को फिर से लोड करने के लिए किया जा सकता है. इसके अलावा, कॉलर
उपयोगकर्ता एजेंट स्ट्रिंग के लिए एक ओवरराइड, पेज लोड होने पर जल्दी इंजेक्ट की जाने वाली स्क्रिप्ट या
आपके पास कैश मेमोरी में सेव किए गए रिसॉर्स को फिर से लोड करने का विकल्प होता है.
संसाधनों की सूची पाने के लिए, getResources
कॉल और onResourceContent
इवेंट का इस्तेमाल करें
जांच किए गए पेज में मौजूद दस्तावेज़, स्टाइलशीट, स्क्रिप्ट, इमेज वगैरह. getContent
और
Resource
क्लास के setContent
तरीके और onResourceContentCommitted
इवेंट हो सकते हैं
उसका इस्तेमाल संसाधन के कॉन्टेंट में बदलाव करने के लिए किया जाना चाहिए. उदाहरण के लिए, कोई बाहरी एडिटर.
जांच की गई विंडो में कोड चलाया जा रहा है
eval
तरीका, एक्सटेंशन को ऐसे कॉन्टेक्स्ट में JavaScript कोड चलाने की सुविधा देता है
जांचा गया पेज. सही कॉन्टेक्स्ट में इस्तेमाल किए जाने पर यह तरीका ज़्यादा कारगर साबित होता है. साथ ही, इसका इस्तेमाल करना खतरनाक होता है
किया जाता है. अगर आपको किसी खास फ़ंक्शन की ज़रूरत न हो, तो tabs.executeScript
तरीके का इस्तेमाल करें
जो eval
तरीके से मिलता है.
eval
और tabs.executeScript
तरीकों के बीच मुख्य अंतर यहां दिया गया है:
eval
तरीका, मूल्यांकन किए जा रहे कोड के लिए किसी आइसोलेटेड वर्ल्ड का इस्तेमाल नहीं करता. इसलिए, JavaScript जांच की गई विंडो की स्थिति को कोड ऐक्सेस कर सकता है. इस तरीके का इस्तेमाल तब करें, जब जांच किए गए पेज की JavaScript स्थिति ज़रूरी है.- जिस कोड का आकलन किया जा रहा है उसे लागू करने के कॉन्टेक्स्ट में Developer Tools Console API शामिल है.
उदाहरण के लिए, कोड में
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
अमान्य
संसाधन का कॉन्टेंट फ़ेच करता है.
getContent
फ़ंक्शन इस तरह दिखता है:(callback: function) => {...}
-
कॉलबैक
फ़ंक्शन
callback
पैरामीटर ऐसा दिखता है:(content: string, encoding: string) => void
-
कॉन्टेंट
स्ट्रिंग
संसाधन का कॉन्टेंट (संभावित रूप से कोड में बदला गया).
-
कोड में बदलने का तरीका
स्ट्रिंग
अगर कॉन्टेंट को कोड में नहीं बदला गया है, तो कोड खाली है. अगर कोड में कोई बदलाव नहीं किया गया है, तो इस फ़ील्ड को खाली छोड़ा जा सकता है. फ़िलहाल, सिर्फ़ base64 का इस्तेमाल किया जा सकता है.
-
-
-
कॉन्टेंट सेट करें
अमान्य
संसाधन का कॉन्टेंट सेट करता है.
setContent
फ़ंक्शन इस तरह दिखता है:(content: string, commit: boolean, callback?: function) => {...}
-
कॉन्टेंट
स्ट्रिंग
संसाधन का नया कॉन्टेंट. फ़िलहाल, सिर्फ़ टेक्स्ट टाइप वाले संसाधन इस्तेमाल किए जा सकते हैं.
-
डेटाबेस के बदलावों को सेव करें
बूलियन
अगर उपयोगकर्ता ने संसाधन में बदलाव कर लिया है और संसाधन का नया कॉन्टेंट मौजूद रहना चाहिए, तो 'सही'; अगर यह कोई मामूली बदलाव है, तो गलत है. ऐसा तब होता है, जब उपयोगकर्ता संसाधन में बदलाव कर रहा हो.
-
कॉलबैक
फ़ंक्शन वैकल्पिक
callback
पैरामीटर ऐसा दिखता है:(error?: object) => void
-
गड़बड़ी
ऑब्जेक्ट ज़रूरी नहीं
अगर संसाधन का कॉन्टेंट सही तरीके से सेट हो गया था, तो 'तय नहीं है' पर सेट करें; गड़बड़ी के बारे में बताता है.
-
-
प्रॉपर्टी
tabId
उस टैब का आईडी जिसकी जांच की जा रही है. इस आईडी का इस्तेमाल chrome.tabs के साथ किया जा सकता है.* एपीआई.
टाइप
संख्या
तरीके
eval()
chrome.devtools.inspectedWindow.eval(
expression: string,
options?: object,
callback?: function,
)
यह जांच किए गए पेज के मुख्य फ़्रेम के हिसाब से JavaScript एक्सप्रेशन का आकलन करता है. एक्सप्रेशन का आकलन JSON के हिसाब से होना चाहिए. ऐसा न होने पर, एक अपवाद दिया जाता है. eval फ़ंक्शन, इवैलुएशन के दौरान होने वाले DevTools की तरफ़ से हुई गड़बड़ी या JavaScript के अपवाद को रिपोर्ट कर सकता है. दोनों ही मामलों में, कॉलबैक का result
पैरामीटर undefined
होता है. DevTools साइड की गड़बड़ी के मामले में, isException
पैरामीटर शून्य नहीं होता है. साथ ही, isError
पैरामीटर को 'सही' पर सेट किया गया है और code
को गड़बड़ी के कोड पर सेट किया गया है. JavaScript की गड़बड़ी के मामले में, isException
को 'सही' पर सेट किया जाता है और value
को थ्रो किए गए ऑब्जेक्ट की स्ट्रिंग वैल्यू पर सेट किया जाता है.
पैरामीटर
-
एक्सप्रेशन
स्ट्रिंग
आकलन करने के लिए एक्सप्रेशन.
-
विकल्प
ऑब्जेक्ट ज़रूरी नहीं
विकल्प पैरामीटर में एक या उससे ज़्यादा विकल्प हो सकते हैं.
-
frameURL
स्ट्रिंग ज़रूरी नहीं
अगर बताया गया, तो एक्सप्रेशन का आकलन उस iframe पर किया जाता है जिसके यूआरएल का मिलान तय किए गए यूआरएल से होता है. डिफ़ॉल्ट रूप से, एक्सप्रेशन का आकलन, जांच किए गए पेज के सबसे ऊपर वाले फ़्रेम में किया जाता है.
-
scriptExecutionContext
स्ट्रिंग ज़रूरी नहीं
Chrome 107 और उसके बाद वाले वर्शनबताए गए ऑरिजिन से मेल खाने वाले किसी एक्सटेंशन की कॉन्टेंट स्क्रिप्ट के कॉन्टेक्स्ट में एक्सप्रेशन का आकलन करें. अगर दिया गया है, तो script सर्वर इवेंट, 'सही' को बदल देता है सेटिंग का इस्तेमाल करें.
-
useContentScriptContext
बूलियन ज़रूरी नहीं
कॉलिंग एक्सटेंशन की कॉन्टेंट स्क्रिप्ट के संदर्भ में एक्सप्रेशन का आकलन करें. हालांकि, इसके लिए यह ज़रूरी है कि जांच किए गए पेज में कॉन्टेंट स्क्रिप्ट पहले से ही डाली गई हो. अगर नहीं, तो एक्सप्रेशन का आकलन नहीं किया जाता और कॉलबैक को एक ऐसे ऑब्जेक्ट पर सेट अपवाद पैरामीटर के साथ शुरू किया जाता है जिसमें
isError
फ़ील्ड 'सही' पर सेट हो औरcode
फ़ील्ड कोE_NOTFOUND
पर सेट किया गया हो.
-
-
कॉलबैक
फ़ंक्शन वैकल्पिक
callback
पैरामीटर ऐसा दिखता है:(result: object, exceptionInfo: object) => void
-
नतीजा
ऑब्जेक्ट
आकलन का नतीजा.
-
exceptionInfo
ऑब्जेक्ट
एक्सप्रेशन का आकलन करते समय कोई अपवाद होने की जानकारी देने वाला ऑब्जेक्ट.
-
कोड
स्ट्रिंग
सेट करें कि एक्सप्रेशन का आकलन होने से पहले, DevTools की तरफ़ कोई गड़बड़ी हुई है या नहीं.
-
ब्यौरा
स्ट्रिंग
सेट करें कि एक्सप्रेशन का आकलन होने से पहले, DevTools की तरफ़ कोई गड़बड़ी हुई है या नहीं.
-
विवरण
कोई भी[]
सेट करें कि एक्सप्रेशन के आकलन से पहले, DevTools की तरफ़ कोई गड़बड़ी हुई है या नहीं. इसमें उन वैल्यू का कलेक्शन शामिल होता है जिन्हें गड़बड़ी की वजह के बारे में ज़्यादा जानकारी देने के लिए, ब्यौरे वाली स्ट्रिंग में बदला जा सकता है.
-
isError
बूलियन
सेट करें कि एक्सप्रेशन का आकलन होने से पहले, DevTools की तरफ़ कोई गड़बड़ी हुई है या नहीं.
-
isException
बूलियन
सेट करें कि जांचा गया कोड, बिना हैंडल किए अपवाद देता है या नहीं.
-
value
स्ट्रिंग
सेट करें कि जांचा गया कोड, बिना हैंडल किए अपवाद देता है या नहीं.
-
-
getResources()
chrome.devtools.inspectedWindow.getResources(
callback: function,
)
जांच किए गए पेज से संसाधनों की सूची लाता है.
पैरामीटर
reload()
chrome.devtools.inspectedWindow.reload(
reloadOptions?: object,
)
जांच किए गए पेज को फिर से लोड करता है.
पैरामीटर
-
reloadOptions
ऑब्जेक्ट ज़रूरी नहीं
-
ignoreCache
बूलियन ज़रूरी नहीं
सही होने पर, लोडर जांच किए गए सभी पेज रिसॉर्स की कैश मेमोरी को बायपास कर देगा. ये रिसॉर्स,
load
इवेंट के चालू होने से पहले लोड होते हैं. इसका असर, जांच की गई विंडो या डेवलपर टूल विंडो में Ctrl+Shift+R दबाने जैसा होता है. -
injectedScript
स्ट्रिंग ज़रूरी नहीं
अगर बताया गया है, तो लोड होने के तुरंत बाद, स्क्रिप्ट को जांचे गए पेज के हर फ़्रेम में इंजेक्ट किया जाएगा. इसे फ़्रेम की किसी भी स्क्रिप्ट से पहले इंजेक्ट किया जाएगा. फिर से लोड होने पर स्क्रिप्ट इंजेक्ट नहीं की जाएगी—उदाहरण के लिए, अगर उपयोगकर्ता Ctrl+R दबाता है.
-
userAgent
स्ट्रिंग ज़रूरी नहीं
अगर बताया गया, तो स्ट्रिंग जांच किए गए पेज के संसाधनों को लोड करते समय भेजे जाने वाले
User-Agent
एचटीटीपी हेडर की वैल्यू को बदल देगी. यह स्ट्रिंग, जांच किए गए पेज में चल रही किसी भी स्क्रिप्ट पर दिखाई जाने वालीnavigator.userAgent
प्रॉपर्टी की वैल्यू को भी बदल देगी.
-
इवेंट
onResourceAdded
chrome.devtools.inspectedWindow.onResourceAdded.addListener(
callback: function,
)
जांच किए गए पेज में नया संसाधन जोड़े जाने पर सक्रिय होता है.
onResourceContentCommitted
chrome.devtools.inspectedWindow.onResourceContentCommitted.addListener(
callback: function,
)
संसाधन का नया संशोधन होने पर सक्रिय होता है (उदा. जब उपयोगकर्ता संसाधन के किसी बदलाव किए गए वर्शन को डेवलपर टूल में सेव करता है).