ब्यौरा
यूज़र स्क्रिप्ट के कॉन्टेक्स्ट में यूज़र स्क्रिप्ट को लागू करने के लिए, userScripts एपीआई का इस्तेमाल करें.
अनुमतियां
userScriptsUser Scripts API का इस्तेमाल करने के लिए, browser.userScripts, अपनी manifest.json फ़ाइल में "userScripts" अनुमति जोड़ें. साथ ही, उन साइटों के लिए "host_permissions" जोड़ें जिन पर आपको स्क्रिप्ट चलानी हैं.
{
"name": "User script test extension",
"manifest_version": 3,
"minimum_chrome_version": "120",
"permissions": [
"userScripts"
],
"host_permissions": [
"*://example.com/*"
]
}
उपलब्धता
कॉन्सेप्ट और इस्तेमाल
यूज़र स्क्रिप्ट, कोड का एक स्निपेट होता है. इसे किसी वेब पेज में इंजेक्ट किया जाता है, ताकि उसके दिखने के तरीके या व्यवहार में बदलाव किया जा सके. कॉन्टेंट स्क्रिप्ट और browser.scripting एपीआई जैसी अन्य एक्सटेंशन सुविधाओं के उलट, User Scripts API आपको आर्बिट्रेरी कोड चलाने की सुविधा देता है. यह एपीआई उन एक्सटेंशन के लिए ज़रूरी है जो उपयोगकर्ता की दी गई स्क्रिप्ट चलाते हैं. इन स्क्रिप्ट को आपके एक्सटेंशन पैकेज के हिस्से के तौर पर शिप नहीं किया जा सकता.
userScripts API के इस्तेमाल की अनुमति दें
आपके एक्सटेंशन को userScripts API इस्तेमाल करने की अनुमति मिलने के बाद, उपयोगकर्ताओं को एक खास टॉगल चालू करना होगा. इससे आपके एक्सटेंशन को एपीआई इस्तेमाल करने की अनुमति मिल जाएगी. Chrome के वर्शन के हिसाब से, ज़रूरी टॉगल और एपीआई के बंद होने पर उसके काम करने का तरीका अलग-अलग होता है.
नीचे दिए गए चेक का इस्तेमाल करके, यह तय करें कि उपयोगकर्ता को कौनसा टॉगल चालू करना है. उदाहरण के लिए, नए उपयोगकर्ता के शामिल होने के दौरान:
let version = Number(navigator.userAgent.match(/(Chrome|Chromium)\/([0-9]+)/)?.[2]);
if (version >= 138) {
// Allow User Scripts toggle will be used.
} else {
// Developer mode toggle will be used.
}
यहां दिए गए सेक्शन में, अलग-अलग टॉगल और उन्हें चालू करने के तरीके के बारे में बताया गया है.
Chrome 138 से पहले के वर्शन (डेवलपर मोड टॉगल)
एक्सटेंशन डेवलपर के तौर पर, आपके Chrome में डेवलपर मोड पहले से चालू होता है. आपके उपयोगकर्ताओं को भी डेवलपर मोड चालू करना होगा.
अपने उपयोगकर्ताओं के लिए, एक्सटेंशन के दस्तावेज़ में इन निर्देशों को कॉपी करके चिपकाया जा सकता है
- नए टैब में
chrome://extensionsडालकर, एक्सटेंशन पेज पर जाएं. (डिज़ाइन के हिसाब से,chrome://यूआरएल को लिंक नहीं किया जा सकता.) डेवलपर मोड के बगल में मौजूद टॉगल स्विच पर क्लिक करके, डेवलपर मोड चालू करें.
एक्सटेंशन पेज (chrome://extensions)
Chrome 138 और इसके बाद के वर्शन ('यूज़र स्क्रिप्ट को चालू करें' टॉगल)
उपयोगकर्ता स्क्रिप्ट को अनुमति दें टॉगल, हर एक्सटेंशन की ज़्यादा जानकारी वाले पेज पर मौजूद होता है. उदाहरण के लिए, chrome://extensions/?id=YOUR_EXTENSION_ID.
अपने उपयोगकर्ताओं के लिए, एक्सटेंशन के दस्तावेज़ में यहां दिए गए निर्देशों को कॉपी करके चिपकाया जा सकता है:
- नए टैब में
chrome://extensionsडालकर, एक्सटेंशन पेज पर जाएं. (डिज़ाइन के हिसाब से,chrome://यूआरएल को लिंक नहीं किया जा सकता.) - एक्सटेंशन के बारे में ज़्यादा जानकारी देखने के लिए, एक्सटेंशन कार्ड पर मौजूद "जानकारी" बटन पर क्लिक करें.
- उपयोगकर्ता स्क्रिप्ट को अनुमति दें के बगल में मौजूद टॉगल स्विच पर क्लिक करें.
एपीआई की उपलब्धता देखना
हमारा सुझाव है कि userScripts API चालू है या नहीं, यह पता करने के लिए यहां दी गई जांच करें. यह जांच, Chrome के सभी वर्शन में काम करती है. इस जांच में, browser.userScripts() तरीके को कॉल करने की कोशिश की जाती है. एपीआई उपलब्ध होने पर, यह तरीका हमेशा सफल होना चाहिए. अगर इस कॉल से कोई गड़बड़ी होती है, तो एपीआई उपलब्ध नहीं है:
function isUserScriptsAvailable() {
try {
// Method call which throws if API permission or toggle is not enabled.
browser.userScripts.getScripts();
return true;
} catch {
// Not available.
return false;
}
}
अलग-अलग दुनिया में काम करना
उपयोगकर्ता और कॉन्टेंट स्क्रिप्ट, दोनों को आइसोलेटेड वर्ल्ड या मेन वर्ल्ड में चलाया जा सकता है. आइसोलेटेड वर्ल्ड, एक ऐसा एक्ज़ीक्यूशन एनवायरमेंट होता है जिसे होस्ट पेज या अन्य एक्सटेंशन ऐक्सेस नहीं कर सकते. इससे उपयोगकर्ता स्क्रिप्ट, होस्ट पेज या अन्य एक्सटेंशन के उपयोगकर्ता और कॉन्टेंट स्क्रिप्ट पर असर डाले बिना, अपने JavaScript एनवायरमेंट को बदल सकती है. इसके उलट, उपयोगकर्ता स्क्रिप्ट (और कॉन्टेंट स्क्रिप्ट), होस्ट पेज या अन्य एक्सटेंशन के उपयोगकर्ता और कॉन्टेंट स्क्रिप्ट को नहीं दिखती हैं. मुख्य वर्ल्ड में चलने वाली स्क्रिप्ट को होस्ट पेजों और अन्य एक्सटेंशन से ऐक्सेस किया जा सकता है. साथ ही, ये होस्ट पेजों और अन्य एक्सटेंशन को दिखती हैं. दुनिया को चुनने के लिए, userScripts.register() को कॉल करते समय "USER_SCRIPT" या "MAIN" पास करें.
USER_SCRIPT वर्ल्ड के लिए कॉन्टेंट की सुरक्षा के लिए नीति कॉन्फ़िगर करने के लिए, userScripts.configureWorld() को कॉल करें:
browser.userScripts.configureWorld({
csp: "script-src 'self'"
});
मैसेज सेवा
कॉन्टेंट स्क्रिप्ट और ऑफ़स्क्रीन दस्तावेज़ों की तरह ही, यूज़र स्क्रिप्ट मैसेज सेवा का इस्तेमाल करके, एक्सटेंशन के अन्य हिस्सों से कम्यूनिकेट करती हैं. इसका मतलब है कि वे एक्सटेंशन के किसी अन्य हिस्से की तरह ही, runtime.sendMessage() और runtime.connect() को कॉल कर सकती हैं. हालांकि, उन्हें खास इवेंट हैंडलर का इस्तेमाल करके रिसीव किया जाता है. इसका मतलब है कि वे onMessage या onConnect का इस्तेमाल नहीं करते. इन हैंडलर को runtime.onUserScriptMessage और runtime.onUserScriptConnect कहा जाता है. खास हैंडलर की मदद से, उपयोगकर्ता की स्क्रिप्ट से मिले मैसेज की पहचान करना आसान हो जाता है. ये मैसेज कम भरोसेमंद होते हैं.
मैसेज भेजने से पहले, आपको configureWorld() को कॉल करना होगा. साथ ही, messaging आर्ग्युमेंट को true पर सेट करना होगा. ध्यान दें कि csp और messaging, दोनों आर्ग्युमेंट एक साथ पास किए जा सकते हैं.
browser.userScripts.configureWorld({
messaging: true
});
एक्सटेंशन के बारे में अपडेट
एक्सटेंशन अपडेट होने पर, उपयोगकर्ता की स्क्रिप्ट मिटा दी जाती हैं. एक्सटेंशन सर्विस वर्कर में runtime.onInstalled इवेंट हैंडलर में कोड चलाकर, उन्हें फिर से जोड़ा जा सकता है. सिर्फ़ उस "update" वजह का जवाब दें जो इवेंट कॉलबैक को पास की गई है.
उदाहरण
यह उदाहरण, हमारे सैंपल डेटा स्टोर करने की जगह में मौजूद userScript सैंपल से लिया गया है.
स्क्रिप्ट रजिस्टर करना
यहां दिए गए उदाहरण में, register() को कॉल करने का बुनियादी तरीका बताया गया है. पहला आर्ग्युमेंट, ऑब्जेक्ट का एक कलेक्शन होता है. इसमें रजिस्टर की जाने वाली स्क्रिप्ट के बारे में बताया जाता है. यहां दिखाए गए विकल्पों के अलावा, और भी विकल्प मौजूद हैं.
browser.userScripts.register([{
id: 'test',
matches: ['*://*/*'],
js: [{code: 'alert("Hi!")'}]
}]);
टाइप
ExecutionWorld
JavaScript वर्ल्ड, जिसमें उपयोगकर्ता की स्क्रिप्ट को चलाया जा सकता है.
Enum
"MAIN"
यह डीओएम के एक्ज़ीक्यूशन एनवायरमेंट के बारे में बताता है. यह एक्ज़ीक्यूशन एनवायरमेंट, होस्ट पेज के JavaScript के साथ शेयर किया जाता है.
"USER_SCRIPT"
इससे, उपयोगकर्ता की स्क्रिप्ट के लिए खास तौर पर बनाए गए एक्ज़ीक्यूशन एनवायरमेंट के बारे में पता चलता है. साथ ही, इस पर पेज की सीएसपी लागू नहीं होती.
InjectionResult
प्रॉपर्टी
-
documentId
स्ट्रिंग
इंजेक्शन से जुड़ा दस्तावेज़.
-
गड़बड़ी
string ज़रूरी नहीं
अगर कोई गड़बड़ी हुई है, तो उसकी जानकारी.
errorऔरresult, म्युचुअली एक्सक्लूसिव हैं. -
frameId
संख्या
इंजेक्शन से जुड़ा फ़्रेम.
-
नतीजा
ज़रूरी नहीं
स्क्रिप्ट रन करने का नतीजा.
InjectionTarget
प्रॉपर्टी
-
allFrames
बूलियन ज़रूरी नहीं
चुनें कि स्क्रिप्ट को टैब के सभी फ़्रेम में इंजेक्ट किया जाना चाहिए या नहीं. डिफ़ॉल्ट तौर पर, यह 'गलत' पर सेट होती है. अगर
frameIdsकी वैल्यू दी गई है, तो यह वैल्यू 'सही' नहीं होनी चाहिए. -
documentIds
string[] ज़रूरी नहीं
उन documentId के आईडी जिनमें इंजेक्ट करना है. अगर
frameIdsसेट है, तो इसे सेट नहीं किया जाना चाहिए. -
frameIds
number[] ज़रूरी नहीं
उन फ़्रेम के आईडी जिनमें इंजेक्ट करना है.
-
tabId
संख्या
उस टैब का आईडी जिसमें स्क्रिप्ट इंजेक्ट करनी है.
RegisteredUserScript
प्रॉपर्टी
-
allFrames
बूलियन ज़रूरी नहीं
अगर वैल्यू 'सही है' पर सेट है, तो यह सभी फ़्रेम में इंजेक्ट हो जाएगा. भले ही, फ़्रेम टैब में सबसे ऊपर मौजूद फ़्रेम न हो. यूआरएल के लिए ज़रूरी शर्तों के लिए, हर फ़्रेम की अलग से जांच की जाती है. अगर यूआरएल के लिए ज़रूरी शर्तें पूरी नहीं होती हैं, तो यह चाइल्ड फ़्रेम में इंजेक्ट नहीं होगा. डिफ़ॉल्ट रूप से, यह वैल्यू false पर सेट होती है. इसका मतलब है कि सिर्फ़ टॉप फ़्रेम को मैच किया जाता है.
-
excludeGlobs
string[] ज़रूरी नहीं
इससे उन पेजों के लिए वाइल्डकार्ड पैटर्न तय किए जाते हैं जिनमें यह उपयोगकर्ता स्क्रिप्ट इंजेक्ट नहीं की जाएगी.
-
excludeMatches
string[] ज़रूरी नहीं
उन पेजों को बाहर रखता है जिनमें यह उपयोगकर्ता स्क्रिप्ट इंजेक्ट की जाएगी. इन स्ट्रिंग के सिंटैक्स के बारे में ज़्यादा जानकारी के लिए, मैच पैटर्न देखें.
-
आईडी
स्ट्रिंग
एपीआई कॉल में बताए गए यूज़र स्क्रिप्ट का आईडी. यह प्रॉपर्टी '_' से शुरू नहीं होनी चाहिए, क्योंकि इसे जनरेट किए गए स्क्रिप्ट आईडी के प्रीफ़िक्स के तौर पर रिज़र्व किया गया है.
-
includeGlobs
string[] ज़रूरी नहीं
इससे उन पेजों के लिए वाइल्डकार्ड पैटर्न तय होते हैं जिनमें यह उपयोगकर्ता स्क्रिप्ट इंजेक्ट की जाएगी.
-
js
ScriptSource[] ज़रूरी नहीं
ScriptSource ऑब्जेक्ट की सूची, जो स्क्रिप्ट के सोर्स तय करती है. इन स्क्रिप्ट को मैच होने वाले पेजों में इंजेक्ट किया जाता है. इस प्रॉपर्टी की वैल्यू ${ref:register} के लिए सबमिट करनी होगी. साथ ही, सबमिट की गई वैल्यू खाली नहीं होनी चाहिए.
-
मैच
string[] ज़रूरी नहीं
इससे पता चलता है कि इस उपयोगकर्ता स्क्रिप्ट को किन पेजों में इंजेक्ट किया जाएगा. इन स्ट्रिंग के सिंटैक्स के बारे में ज़्यादा जानकारी के लिए, मैच पैटर्न देखें. ${ref:register} के लिए, इस प्रॉपर्टी की वैल्यू सबमिट करना ज़रूरी है.
-
runAt
RunAt ज़रूरी नहीं है
इससे यह तय होता है कि वेब पेज में JavaScript फ़ाइलें कब इंजेक्ट की जाएंगी. पसंदीदा और डिफ़ॉल्ट वैल्यू
document_idleहै. -
दुनिया
ExecutionWorld ज़रूरी नहीं
स्क्रिप्ट को चलाने के लिए, JavaScript एक्ज़ीक्यूशन एनवायरमेंट. डिफ़ॉल्ट रूप से, यह
`USER_SCRIPT`पर सेट होता है. -
worldId
string ज़रूरी नहीं
Chrome 133+ Chrome 148 से browser.*इससे उपयोगकर्ता स्क्रिप्ट के वर्ल्ड आईडी के बारे में पता चलता है, जिसमें स्क्रिप्ट को चलाना है. अगर इसे शामिल नहीं किया जाता है, तो स्क्रिप्ट डिफ़ॉल्ट यूज़र स्क्रिप्ट वर्ल्ड में चलेगी. यह सिर्फ़ तब मान्य है, जब
worldको शामिल न किया गया हो या इसकी वैल्यूUSER_SCRIPTहो. शुरुआत में अंडरस्कोर (_) वाली वैल्यू रिज़र्व होती हैं.
ScriptSource
प्रॉपर्टी
-
कोड
string ज़रूरी नहीं
इस स्ट्रिंग में, इंजेक्ट किया जाने वाला JavaScript कोड होता है.
fileयाcodeमें से कोई एक वैल्यू दी जानी चाहिए. -
फ़ाइल
string ज़रूरी नहीं
इंजेक्ट की जाने वाली JavaScript फ़ाइल का पाथ, एक्सटेंशन की रूट डायरेक्ट्री के हिसाब से होना चाहिए.
fileयाcodeमें से कोई एक वैल्यू दी जानी चाहिए.
UserScriptFilter
प्रॉपर्टी
-
आईडी
string[] ज़रूरी नहीं
getScriptsसिर्फ़ इस सूची में दिए गए आईडी वाली स्क्रिप्ट दिखाता है.
UserScriptInjection
प्रॉपर्टी
-
injectImmediately
बूलियन ज़रूरी नहीं
क्या टारगेट में इंजेक्शन को जल्द से जल्द ट्रिगर किया जाना चाहिए. ध्यान दें कि इस बात की कोई गारंटी नहीं है कि पेज लोड होने से पहले स्क्रिप्ट इंजेक्ट हो जाएगी. ऐसा इसलिए, क्योंकि स्क्रिप्ट के टारगेट तक पहुंचने से पहले ही पेज लोड हो सकता है.
-
js
ScriptSource ऑब्जेक्ट की सूची, जो टारगेट में इंजेक्ट की जाने वाली स्क्रिप्ट के सोर्स तय करती है.
-
टारगेट
उस टारगेट की जानकारी जिसमें स्क्रिप्ट को इंजेक्ट करना है.
-
दुनिया
ExecutionWorld ज़रूरी नहीं
स्क्रिप्ट को चलाने के लिए, JavaScript "वर्ल्ड". डिफ़ॉल्ट रूप से, यह
USER_SCRIPTपर सेट होता है. -
worldId
string ज़रूरी नहीं
इससे उपयोगकर्ता स्क्रिप्ट के वर्ल्ड आईडी के बारे में पता चलता है, जिसमें स्क्रिप्ट को चलाना है. अगर इसे शामिल नहीं किया जाता है, तो स्क्रिप्ट डिफ़ॉल्ट यूज़र स्क्रिप्ट वर्ल्ड में चलेगी. यह सिर्फ़ तब मान्य है, जब
worldको शामिल न किया गया हो या इसकी वैल्यूUSER_SCRIPTहो. शुरुआत में अंडरस्कोर (_) वाली वैल्यू रिज़र्व होती हैं.
WorldProperties
प्रॉपर्टी
-
csp
string ज़रूरी नहीं
इससे दुनिया भर के लिए सीएसपी की जानकारी मिलती है. डिफ़ॉल्ट रूप से,
`ISOLATED`वर्ल्ड सीएसपी का इस्तेमाल किया जाता है. -
मैसेज सेवा
बूलियन ज़रूरी नहीं
इससे यह तय होता है कि मैसेजिंग एपीआई एक्सपोज़ किए गए हैं या नहीं. डिफ़ॉल्ट रूप से, यह
falseपर सेट होता है. -
worldId
string ज़रूरी नहीं
Chrome 133+ Chrome 148 से browser.*अपडेट करने के लिए, उपयोगकर्ता की स्क्रिप्ट के खास वर्ल्ड का आईडी बताता है. अगर यह नहीं दिया जाता है, तो डिफ़ॉल्ट यूज़र स्क्रिप्ट वर्ल्ड की प्रॉपर्टी अपडेट हो जाती हैं. शुरुआत में अंडरस्कोर (
_) वाली वैल्यू रिज़र्व होती हैं.
तरीके
configureWorld()
browser.userScripts.configureWorld(
properties: WorldProperties,
): Promise<void>
यह नीति, `USER_SCRIPT` एक्ज़ीक्यूशन एनवायरमेंट को कॉन्फ़िगर करती है.
पैरामीटर
-
प्रॉपर्टी
इसमें उपयोगकर्ता स्क्रिप्ट वर्ल्ड का कॉन्फ़िगरेशन शामिल होता है.
रिटर्न
-
वादा<शून्य>
ऐसा प्रॉमिस जो वर्ल्ड के कॉन्फ़िगर होने के बाद रिज़ॉल्व हो जाता है.
execute()
browser.userScripts.execute(
injection: UserScriptInjection,
): Promise<InjectionResult[]>
टारगेट कॉन्टेक्स्ट में कोई स्क्रिप्ट इंजेक्ट करने की अनुमति. डिफ़ॉल्ट रूप से, स्क्रिप्ट document_idle पर चलेगी. अगर पेज पहले ही लोड हो चुका है, तो स्क्रिप्ट तुरंत चलेगी. अगर injectImmediately प्रॉपर्टी सेट है, तो स्क्रिप्ट बिना इंतज़ार किए इंजेक्ट हो जाएगी. भले ही, पेज लोड होना पूरा न हुआ हो. अगर स्क्रिप्ट का आकलन प्रॉमिस के तौर पर किया जाता है, तो ब्राउज़र प्रॉमिस के सेटल होने का इंतज़ार करेगा और नतीजे के तौर पर मिली वैल्यू दिखाएगा.
पैरामीटर
-
इंजेक्शन
रिटर्न
-
<InjectionResult[]> का प्रॉमिस
getScripts()
browser.userScripts.getScripts(
filter?: UserScriptFilter,
): Promise<RegisteredUserScript[]>
यह इस एक्सटेंशन के लिए, डाइनैमिक तौर पर रजिस्टर की गई सभी उपयोगकर्ता स्क्रिप्ट दिखाता है.
पैरामीटर
-
फ़िल्टर
UserScriptFilter ज़रूरी नहीं
अगर यह पैरामीटर दिया जाता है, तो यह तरीका सिर्फ़ उन यूज़र स्क्रिप्ट को दिखाता है जो इससे मैच करती हैं.
रिटर्न
-
Promise<RegisteredUserScript[]>
प्रॉमिस, जो रजिस्टर की गई स्क्रिप्ट के साथ रिज़ॉल्व होता है. कोई गड़बड़ी होने पर, प्रॉमिस को अस्वीकार कर दिया जाएगा.
getWorldConfigurations()
browser.userScripts.getWorldConfigurations(): Promise<WorldProperties[]>
रजिस्टर किए गए सभी वर्ल्ड कॉन्फ़िगरेशन को वापस लाता है.
रिटर्न
-
Promise<WorldProperties[]>
प्रॉमिस, जो रजिस्टर किए गए वर्ल्ड कॉन्फ़िगरेशन के साथ रिज़ॉल्व होता है.
register()
browser.userScripts.register(
scripts: RegisteredUserScript[],
): Promise<void>
इस एक्सटेंशन के लिए, एक या उससे ज़्यादा यूज़र स्क्रिप्ट रजिस्टर करता है.
पैरामीटर
-
स्क्रिप्ट
इसमें रजिस्टर की जाने वाली उपयोगकर्ता स्क्रिप्ट की सूची होती है.
रिटर्न
-
वादा<शून्य>
स्क्रिप्ट पूरी तरह से रजिस्टर होने के बाद, प्रॉमिस रिज़ॉल्व हो जाता है. कोई गड़बड़ी होने पर, प्रॉमिस को अस्वीकार कर दिया जाएगा.
resetWorldConfiguration()
browser.userScripts.resetWorldConfiguration(
worldId?: string,
): Promise<void>
इससे उपयोगकर्ता स्क्रिप्ट वर्ल्ड के लिए कॉन्फ़िगरेशन रीसेट हो जाता है. तय किए गए आईडी के साथ वर्ल्ड में इंजेक्ट की जाने वाली कोई भी स्क्रिप्ट, डिफ़ॉल्ट वर्ल्ड कॉन्फ़िगरेशन का इस्तेमाल करेगी.
पैरामीटर
-
worldId
string ज़रूरी नहीं
रीसेट की जाने वाली यूज़र स्क्रिप्ट वर्ल्ड का आईडी. अगर इसे शामिल नहीं किया जाता है, तो डिफ़ॉल्ट वर्ल्ड का कॉन्फ़िगरेशन रीसेट हो जाता है.
रिटर्न
-
वादा<शून्य>
कॉन्फ़िगरेशन रीसेट होने पर रिज़ॉल्व होने वाला प्रॉमिस.
unregister()
browser.userScripts.unregister(
filter?: UserScriptFilter,
): Promise<void>
इस एक्सटेंशन के लिए, डाइनैमिक तौर पर रजिस्टर की गई सभी उपयोगकर्ता स्क्रिप्ट का रजिस्ट्रेशन रद्द करता है.
पैरामीटर
-
फ़िल्टर
UserScriptFilter ज़रूरी नहीं
अगर इस तरीके के बारे में बताया गया है, तो यह सिर्फ़ उन यूज़र स्क्रिप्ट का रजिस्ट्रेशन रद्द करता है जो इससे मैच करती हैं.
रिटर्न
-
वादा<शून्य>
स्क्रिप्ट का रजिस्ट्रेशन पूरी तरह से रद्द होने के बाद, प्रॉमिस रिज़ॉल्व हो जाता है. कोई गड़बड़ी होने पर, प्रॉमिस को अस्वीकार कर दिया जाएगा.
update()
browser.userScripts.update(
scripts: RegisteredUserScript[],
): Promise<void>
इस एक्सटेंशन के लिए, एक या इससे ज़्यादा यूज़र स्क्रिप्ट अपडेट करता है.
पैरामीटर
-
स्क्रिप्ट
इसमें उन उपयोगकर्ता स्क्रिप्ट की सूची होती है जिन्हें अपडेट करना है. अगर किसी प्रॉपर्टी को इस ऑब्जेक्ट में शामिल किया जाता है, तो उसे सिर्फ़ मौजूदा स्क्रिप्ट के लिए अपडेट किया जाता है. अगर स्क्रिप्ट को पार्स करने या फ़ाइल की पुष्टि करने के दौरान गड़बड़ियां होती हैं या दिए गए आईडी, पूरी तरह से रजिस्टर की गई स्क्रिप्ट से मेल नहीं खाते हैं, तो कोई भी स्क्रिप्ट अपडेट नहीं की जाती.
रिटर्न
-
वादा<शून्य>
स्क्रिप्ट पूरी तरह से अपडेट होने के बाद, प्रॉमिस रिज़ॉल्व हो जाता है. कोई गड़बड़ी होने पर, प्रॉमिस को अस्वीकार कर दिया जाएगा.