chrome.scripting

ब्यौरा

अलग-अलग कॉन्टेक्स्ट में स्क्रिप्ट चलाने के लिए, chrome.scripting एपीआई का इस्तेमाल करें.

अनुमतियां

scripting

उपलब्धता

Chrome 88 और उसके बाद के वर्शन संगीत वीडियो 3+

मेनिफ़ेस्ट

chrome.scripting एपीआई का इस्तेमाल करने के लिए, मेनिफ़ेस्ट में "scripting" अनुमति के साथ-साथ स्क्रिप्ट इंजेक्ट करने के लिए पेजों के होस्ट की अनुमतियों का एलान करें. "host_permissions" कुंजी या "activeTab" अनुमति का इस्तेमाल करें. इससे, होस्ट को कुछ समय के लिए अनुमतियां मिलती हैं. नीचे दिए गए उदाहरण में, ActiveTab की अनुमति का इस्तेमाल किया गया है.

{
  "name": "Scripting Extension",
  "manifest_version": 3,
  "permissions": ["scripting", "activeTab"],
  ...
}

सिद्धांत और उनका इस्तेमाल

JavaScript और सीएसएस को इंजेक्ट करने के लिए, chrome.scripting एपीआई का इस्तेमाल किया जा सकता है वेबसाइटें. यह कॉन्टेंट की मदद से किया जा सकने वाला तरीका जैसा है स्क्रिप्ट. हालांकि, chrome.scripting नेमस्पेस का इस्तेमाल करके, एक्सटेंशन रनटाइम के दौरान फ़ैसले ले सकते हैं.

इंजेक्शन टारगेट

JavaScript इंजेक्ट करने के लिए टारगेट तय करने के लिए, target पैरामीटर का इस्तेमाल किया जा सकता है या में सीएसएस देने होंगे.

सिर्फ़ tabId फ़ील्ड को भरना ज़रूरी है. डिफ़ॉल्ट रूप से, इंजेक्शन दिए गए टैब के मुख्य फ़्रेम पर जाएं.

function getTabId() { ... }

chrome.scripting
    .executeScript({
      target : {tabId : getTabId()},
      files : [ "script.js" ],
    })
    .then(() => console.log("script injected"));

किसी खास टैब के सभी फ़्रेम में चलाने के लिए, allFrames बूलियन सेट किया जा सकता है true तक.

function getTabId() { ... }

chrome.scripting
    .executeScript({
      target : {tabId : getTabId(), allFrames : true},
      files : [ "script.js" ],
    })
    .then(() => console.log("script injected in all frames"));

अलग-अलग फ़्रेम का इस्तेमाल करके, टैब के खास फ़्रेम इंजेक्ट किए जा सकते हैं आईडी. फ़्रेम आईडी के बारे में ज़्यादा जानकारी के लिए, chrome.webNavigation API.

function getTabId() { ... }

chrome.scripting
    .executeScript({
      target : {tabId : getTabId(), frameIds : [ frameId1, frameId2 ]},
      files : [ "script.js" ],
    })
    .then(() => console.log("script injected on target frames"));

डाला गया कोड

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

फ़ाइलें

फ़ाइलों को स्ट्रिंग के तौर पर दिखाया जाता है. ये एक्सटेंशन के रूट से मिलते-जुलते पाथ होते हैं डायरेक्ट्री. यह कोड, script.js फ़ाइल को मुख्य फ़ोल्डर में इंजेक्ट करेगा टैब के फ़्रेम के बारे में बताता है.

function getTabId() { ... }

chrome.scripting
    .executeScript({
      target : {tabId : getTabId()},
      files : [ "script.js" ],
    })
    .then(() => console.log("injected script file"));

रनटाइम फ़ंक्शन

scripting.executeScript() के साथ JavaScript इंजेक्ट करते समय, फ़ंक्शन को एक्ज़ीक्यूट करने की ज़रूरत नहीं है. इस फ़ंक्शन को कोई फ़ंक्शन होना चाहिए मौजूदा एक्सटेंशन संदर्भ के लिए उपलब्ध वैरिएबल.

function getTabId() { ... }
function getTitle() { return document.title; }

chrome.scripting
    .executeScript({
      target : {tabId : getTabId()},
      func : getTitle,
    })
    .then(() => console.log("injected a function"));
function getTabId() { ... }
function getUserColor() { ... }

function changeBackgroundColor() {
  document.body.style.backgroundColor = getUserColor();
}

chrome.scripting
    .executeScript({
      target : {tabId : getTabId()},
      func : changeBackgroundColor,
    })
    .then(() => console.log("injected a function"));

args प्रॉपर्टी का इस्तेमाल करके, इसे ठीक किया जा सकता है:

function getTabId() { ... }
function getUserColor() { ... }
function changeBackgroundColor(backgroundColor) {
  document.body.style.backgroundColor = backgroundColor;
}

chrome.scripting
    .executeScript({
      target : {tabId : getTabId()},
      func : changeBackgroundColor,
      args : [ getUserColor() ],
    })
    .then(() => console.log("injected a function"));

रनटाइम स्ट्रिंग

किसी पेज में सीएसएस इंजेक्ट करते समय, आप इसमें इस्तेमाल की जाने वाली स्ट्रिंग भी तय कर सकते हैं css प्रॉपर्टी. यह विकल्प सिर्फ़ scripting.insertCSS() के लिए उपलब्ध है; की पहचान करें scripting.executeScript() का इस्तेमाल करके स्ट्रिंग नहीं चला सकता.

function getTabId() { ... }
const css = "body { background-color: red; }";

chrome.scripting
    .insertCSS({
      target : {tabId : getTabId()},
      css : css,
    })
    .then(() => console.log("CSS injected"));

नतीजों को मैनेज करना

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

function getTabId() { ... }
function getTitle() { return document.title; }

chrome.scripting
    .executeScript({
      target : {tabId : getTabId(), allFrames : true},
      func : getTitle,
    })
    .then(injectionResults => {
      for (const {frameId, result} of injectionResults) {
        console.log(`Frame ${frameId} result:`, result);
      }
    });

scripting.insertCSS() कोई नतीजा नहीं देता.

वादे

अगर स्क्रिप्ट के एक्ज़ीक्यूट होने से बनने वाली वैल्यू कोई प्रॉमिस है, तो Chrome इंतज़ार करेगा और नतीजा मिलने वाली वैल्यू को वापस करने के प्रॉमिस का इस्तेमाल करें.

function getTabId() { ... }
async function addIframe() {
  const iframe = document.createElement("iframe");
  const loadComplete =
      new Promise(resolve => iframe.addEventListener("load", resolve));
  iframe.src = "https://example.com";
  document.body.appendChild(iframe);
  await loadComplete;
  return iframe.contentWindow.document.title;
}

chrome.scripting
    .executeScript({
      target : {tabId : getTabId(), allFrames : true},
      func : addIframe,
    })
    .then(injectionResults => {
      for (const frameResult of injectionResults) {
        const {frameId, result} = frameResult;
        console.log(`Frame ${frameId} result:`, result);
      }
    });

उदाहरण

डाइनैमिक कॉन्टेंट की सभी स्क्रिप्ट का रजिस्ट्रेशन रद्द करें

नीचे दिए गए स्निपेट में एक ऐसा फ़ंक्शन है जो सभी डाइनैमिक कॉन्टेंट का रजिस्ट्रेशन रद्द करता है ऐसी स्क्रिप्ट जिन्हें एक्सटेंशन पहले रजिस्टर किया गया है.

async function unregisterAllDynamicContentScripts() {
  try {
    const scripts = await chrome.scripting.getRegisteredContentScripts();
    const scriptIds = scripts.map(script => script.id);
    return chrome.scripting.unregisterContentScripts({ ids: scriptIds });
  } catch (error) {
    const message = [
      "An unexpected error occurred while",
      "unregistering dynamic content scripts.",
    ].join(" ");
    throw new Error(message, {cause : error});
  }
}

chrome.scripting API को आज़माने के लिए, Chrome एक्सटेंशन के सैंपल से स्क्रिप्टिंग सैंपल इंस्टॉल करें डेटा स्टोर करने की जगह.

टाइप

ContentScriptFilter

Chrome 96 और उसके बाद के वर्शन

प्रॉपर्टी

  • आईडी

    स्ट्रिंग[] ज़रूरी नहीं

    अगर बताया गया है, तो getRegisteredContentScripts सिर्फ़ इस सूची में दिए गए आईडी वाली स्क्रिप्ट दिखाएगा.

CSSInjection

प्रॉपर्टी

  • css

    स्ट्रिंग ज़रूरी नहीं

    सीएसएस वाली एक स्ट्रिंग जिसे इंजेक्ट करना है. files और css में से किसी एक के बारे में बताना ज़रूरी है.

  • फ़ाइलें

    स्ट्रिंग[] ज़रूरी नहीं

    इंजेक्ट की जाने वाली सीएसएस फ़ाइलों का पाथ. यह एक्सटेंशन की रूट डायरेक्ट्री से जुड़ा होता है. files और css में से किसी एक के बारे में बताना ज़रूरी है.

  • origin

    StyleOrigin ज़रूरी नहीं

    इंजेक्शन की स्टाइल ऑरिजिन. डिफ़ॉल्ट तौर पर, यह 'AUTHOR' पर सेट होता है.

  • टारगेट

    टारगेट में सीएसएस डालने के लिए इस्तेमाल की जाने वाली जानकारी.

ExecutionWorld

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

स्क्रिप्ट के अंदर एक्ज़ीक्यूट करने के लिए JavaScript की दुनिया.

Enum

"ISOLATED"
अलग-अलग दुनिया के बारे में बताता है, जहां इस एक्सटेंशन को लागू करने का यूनीक एनवायरमेंट होता है.

"MAIN"
DOM की मुख्य दुनिया के बारे में बताता है, जो होस्ट पेज के JavaScript के साथ शेयर किया जाने वाला एक्ज़ीक्यूशन एनवायरमेंट है.

InjectionResult

प्रॉपर्टी

  • documentId

    स्ट्रिंग

    इंजेक्शन से जुड़ा दस्तावेज़.

  • frameId

    संख्या

    इंजेक्शन से जुड़ा फ़्रेम.

  • नतीजा

    कोई भी वैकल्पिक

    स्क्रिप्ट के काम करने का नतीजा.

InjectionTarget

प्रॉपर्टी

  • allFrames

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

    स्क्रिप्ट को टैब के अंदर सभी फ़्रेम में इंजेक्ट करना चाहिए या नहीं. डिफ़ॉल्ट तौर पर, 'गलत' पर सेट होती है. अगर frameIds बताया गया है, तो यह सही नहीं होना चाहिए.

  • documentIds

    स्ट्रिंग[] ज़रूरी नहीं

    खास documentId के ID को इंजेक्ट करना होता है. अगर frameIds सेट है, तो यह सेट नहीं होना चाहिए.

  • frameIds

    नंबर[] ज़रूरी नहीं

    इंजेक्ट करने के लिए खास फ़्रेम के आईडी.

  • tabId

    संख्या

    उस टैब का आईडी जिसमें इंजेक्ट करना है.

RegisteredContentScript

Chrome 96 और उसके बाद के वर्शन

प्रॉपर्टी

  • allFrames

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

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

  • css

    स्ट्रिंग[] ज़रूरी नहीं

    मिलते-जुलते पेजों पर डाली जाने वाली सीएसएस फ़ाइलों की सूची. इन्हें उसी क्रम में इंजेक्ट किया जाता है जिस क्रम में ये इस कलेक्शन में दिखते हैं. पेज के लिए कोई डीओएम बनाने या दिखाने से पहले.

  • excludeMatches

    स्ट्रिंग[] ज़रूरी नहीं

    इसमें वे पेज शामिल नहीं हैं जिनमें इस कॉन्टेंट स्क्रिप्ट को डाला जाएगा. इन स्ट्रिंग के सिंटैक्स की ज़्यादा जानकारी के लिए, मैच पैटर्न देखें.

  • आईडी

    स्ट्रिंग

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

  • जेएस

    स्ट्रिंग[] ज़रूरी नहीं

    मिलते-जुलते पेजों पर डाली जाने वाली JavaScript फ़ाइलों की सूची. इन्हें उसी क्रम में डाला जाता है जिस क्रम में ये इस अरे में दिखते हैं.

  • matchOriginAsFallback

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

    यह बताता है कि स्क्रिप्ट को फ़्रेम में इंजेक्ट किया जा सकता है या नहीं, जहां यूआरएल में काम न करने वाली स्कीम मौजूद है; खास तौर पर: इसके बारे में:, डेटा:, BLOB: या फ़ाइल सिस्टम:. ऐसे मामलों में, यूआरएल के ऑरिजिन की जांच की जाती है, ताकि यह तय किया जा सके कि स्क्रिप्ट को इंजेक्ट किया जाए या नहीं. अगर ऑरिजिन null है (जैसा कि डेटा: यूआरएल की सूची में है) तो इस्तेमाल किया गया ऑरिजिन, उस फ़्रेम को माना जाता है जिससे मौजूदा फ़्रेम बनाया गया था या वह फ़्रेम जिसने इस फ़्रेम पर नेविगेशन शुरू किया था. ध्यान दें कि यह पैरंट फ़्रेम नहीं हो सकता.

  • मैच

    स्ट्रिंग[] ज़रूरी नहीं

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

  • persistAcrossSessions

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

    इससे पता चलता है कि कॉन्टेंट की यह स्क्रिप्ट, आने वाले सेशन में जारी रहेगी या नहीं. डिफ़ॉल्ट रूप से, 'सही' होता है.

  • runAt

    RunAt ज़रूरी नहीं है

    इस नीति से पता चलता है कि JavaScript फ़ाइलों को वेब पेज में कब डाला जाता है. पसंदीदा और डिफ़ॉल्ट वैल्यू document_idle है.

  • दुनिया

    ExecutionWorld ज़रूरी नहीं है

    JavaScript "world" में स्क्रिप्ट चलाने के लिए. डिफ़ॉल्ट तौर पर, यह ISOLATED पर सेट होता है.

ScriptInjection

प्रॉपर्टी

  • आर्ग्युमेंट

    कोई भी[] ज़रूरी नहीं

    दिए गए फ़ंक्शन को पास किए जाने वाले आर्ग्युमेंट. यह सिर्फ़ तब मान्य होता है, जब func पैरामीटर तय किया गया हो. ये आर्ग्युमेंट, JSON फ़ॉर्मैट में क्रम में लगाए जा सकने वाले होने चाहिए.

  • फ़ाइलें

    स्ट्रिंग[] ज़रूरी नहीं

    इंजेक्ट करने के लिए JS या सीएसएस फ़ाइलों का पाथ, जो एक्सटेंशन की रूट डायरेक्ट्री से जुड़ा होता है. files या func में से कोई एक बताना ज़रूरी है.

  • injectImmediately

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

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

  • टारगेट

    उस टारगेट के बारे में बताने वाली जानकारी जिसमें स्क्रिप्ट इंजेक्ट करनी है.

  • दुनिया

    ExecutionWorld ज़रूरी नहीं है

    JavaScript "world" में स्क्रिप्ट चलाने के लिए. डिफ़ॉल्ट तौर पर, यह ISOLATED पर सेट होता है.

  • func

    अमान्य ज़रूरी नहीं

    इंजेक्ट करने के लिए JavaScript फ़ंक्शन. इस फ़ंक्शन को क्रम से लगाया जाएगा और फिर इंजेक्शन के लिए डीसीरियलाइज़ किया जाएगा. इसका मतलब है कि बाउंड पैरामीटर और लागू करने का कॉन्टेक्स्ट हट जाएंगे. files या func में से कोई एक बताना ज़रूरी है.

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

    () => {...}

StyleOrigin

स्टाइल बदलने की शुरुआत. ज़्यादा जानकारी के लिए स्टाइल का ऑरिजिन देखें.

Enum

"AUTHOR"

"USER"

तरीके

executeScript()

प्रॉमिस
chrome.scripting.executeScript(
  injection: ScriptInjection,
  callback?: function,
)

टारगेट कॉन्टेक्स्ट में स्क्रिप्ट इंजेक्ट करता है. डिफ़ॉल्ट रूप से, स्क्रिप्ट document_idle पर या अगर पेज पहले से लोड हो चुका है, तो तुरंत चलने लगेगा. अगर injectImmediately प्रॉपर्टी सेट की गई है, तो स्क्रिप्ट इंतज़ार किए बिना इंजेक्ट करेगी, भले ही पेज पूरी तरह लोड न हुआ हो. अगर स्क्रिप्ट प्रॉमिस का आकलन करती है, तो ब्राउज़र प्रॉमिस के सेटलमेंट और मिलने वाली वैल्यू का इंतज़ार करेगा.

पैरामीटर

  • इंजेक्शन

    उस स्क्रिप्ट के बारे में जानकारी जिसे इंजेक्ट करना है.

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    (results: InjectionResult[]) => void

रिटर्न

  • Promise<InjectionResult[]>

    मेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.

getRegisteredContentScripts()

प्रॉमिस Chrome 96 या इसके बाद के वर्शन पर
chrome.scripting.getRegisteredContentScripts(
  filter?: ContentScriptFilter,
  callback?: function,
)

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

पैरामीटर

  • फ़िल्टर करें

    ContentScriptFilter ज़रूरी नहीं

    एक्सटेंशन की डाइनैमिक रूप से रजिस्टर की गई स्क्रिप्ट को फ़िल्टर करने के लिए ऑब्जेक्ट.

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    (scripts: RegisteredContentScript[]) => void

रिटर्न

  • Promise<RegisteredContentScript[]>

    मेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.

insertCSS()

प्रॉमिस
chrome.scripting.insertCSS(
  injection: CSSInjection,
  callback?: function,
)

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

पैरामीटर

  • इंजेक्शन

    शामिल की जाने वाली स्टाइल की जानकारी.

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    () => void

रिटर्न

  • प्रॉमिस<void>

    मेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.

registerContentScripts()

प्रॉमिस Chrome 96 या इसके बाद के वर्शन पर
chrome.scripting.registerContentScripts(
  scripts: RegisteredContentScript[],
  callback?: function,
)

इस एक्सटेंशन के लिए एक या उससे ज़्यादा कॉन्टेंट स्क्रिप्ट रजिस्टर करती है.

पैरामीटर

  • स्क्रिप्ट

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

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    () => void

रिटर्न

  • प्रॉमिस<void>

    मेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.

removeCSS()

प्रॉमिस Chrome 90 और उसके बाद वाले वर्शन के लिए
chrome.scripting.removeCSS(
  injection: CSSInjection,
  callback?: function,
)

टारगेट कॉन्टेक्स्ट से, इस एक्सटेंशन के ज़रिए शामिल की गई सीएसएस स्टाइलशीट को हटाता है.

पैरामीटर

  • इंजेक्शन

    हटाई जाने वाली स्टाइल की जानकारी. ध्यान दें कि css, files, और origin प्रॉपर्टी, insertCSS के ज़रिए डाली गई स्टाइलशीट से पूरी तरह मेल खानी चाहिए. गैर-मौजूद स्टाइलशीट को हटाने का प्रयास करना संभव नहीं है.

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    () => void

रिटर्न

  • प्रॉमिस<void>

    मेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.

unregisterContentScripts()

प्रॉमिस Chrome 96 या इसके बाद के वर्शन पर
chrome.scripting.unregisterContentScripts(
  filter?: ContentScriptFilter,
  callback?: function,
)

इस एक्सटेंशन के लिए कॉन्टेंट स्क्रिप्ट का रजिस्ट्रेशन रद्द करता है.

पैरामीटर

  • फ़िल्टर करें

    ContentScriptFilter ज़रूरी नहीं

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

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    () => void

रिटर्न

  • प्रॉमिस<void>

    मेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.

updateContentScripts()

प्रॉमिस Chrome 96 या इसके बाद के वर्शन पर
chrome.scripting.updateContentScripts(
  scripts: RegisteredContentScript[],
  callback?: function,
)

इस एक्सटेंशन के लिए एक या ज़्यादा कॉन्टेंट स्क्रिप्ट को अपडेट करता है.

पैरामीटर

  • स्क्रिप्ट

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

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    () => void

रिटर्न

  • प्रॉमिस<void>

    मेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.