खोज…


टिप्पणियों

आधिकारिक दस्तावेज

घोषणा में सामग्री लिपियों की घोषणा

सामग्री लिपियों को manifest.json में घोषित किया जा सकता है। यूआरएल पैटर्न के सेट से मेल खाने वाले पृष्ठों में हमेशा इंजेक्ट किया जा सकता है।

न्यूनतम उदाहरण

"content_scripts" : [
  {
    "js": ["content.js"],
    "css": ["content.css"]
    "matches": ["http://example.com/*"]
  }
]

यह प्रकटन प्रविष्टि Chrome को एक सामग्री स्क्रिप्ट content.js , सीएसएस फ़ाइल content.css के साथ मेल खाने के लिए निर्देश देती है, मैच पैटर्न http://example.com/* से मेल खाने वाले पृष्ठ पर किसी भी नेविगेशन के बाद।

js और css दोनों कीज़ ऑप्शनल हैं: आपके पास उनमें से केवल एक या दोनों हो सकते हैं जो आपकी ज़रूरत पर निर्भर करते हैं।

content_scripts कुंजी एक सरणी है, और आप कई सामग्री स्क्रिप्ट परिभाषाएँ घोषित कर सकते हैं:

"content_scripts" : [
  {
    "js": ["content.js"],
    "matches": ["http://*.example.com/*"]
  },
  {
    "js": ["something_else.js"],
    "matches": ["http://*.example.org/*"]
  }
]

ध्यान दें कि js और matches दोनों सरणियाँ हैं, भले ही आपके पास केवल एक प्रविष्टि हो।

आधिकारिक दस्तावेज और अन्य उदाहरणों में अधिक विकल्प उपलब्ध हैं।

महत्वपूर्ण लेख

घोषणापत्र में घोषित सामग्री लिपियों को केवल विस्तार भार के बाद ही नई नावों पर इंजेक्ट किया जाएगा । उन्हें मौजूदा टैब में इंजेक्ट नहीं किया जाएगा। यह विकास के दौरान एक्सटेंशन रीलोड पर भी लागू होता है, और रिलीज के बाद एक्सटेंशन अपडेट।

यदि आपको यह सुनिश्चित करने की आवश्यकता है कि वर्तमान में खोले गए टैब कवर किए गए हैं, तो स्टार्टअप पर प्रोग्रामेटिक इंजेक्शन करने पर भी विचार करें।

एक विस्तार पृष्ठ से सामग्री लिपियों को इंजेक्ट करना

यदि, URL के आधार पर हमेशा कंटेंट स्क्रिप्ट इंजेक्ट की जाती है, तो आप कंटेंट स्क्रिप्ट इंजेक्ट होने पर सीधे कंट्रोल करना चाहते हैं, आप Programmatic Injection का उपयोग कर सकते हैं।

न्यूनतम उदाहरण

  • जावास्क्रिप्ट

    chrome.tabs.executeScript({file: "content.js"});
    
  • सीएसएस

    chrome.tabs.insertCSS({file: "content.css"});
    

एक विस्तार पृष्ठ (उदाहरण के लिए पृष्ठभूमि या पॉपअप) से कहा जाता है, और यह सोचते हैं आप इंजेक्षन करने की अनुमति है, इस पर अमल होगा content.js या डालने content.css मौजूदा टैब के शीर्ष फ़्रेम में एक सामग्री स्क्रिप्ट के रूप में।

इनलाइन कोड

आप सामग्री स्क्रिप्ट के रूप में फ़ाइल के बजाय इनलाइन कोड निष्पादित कर सकते हैं:

var code = "console.log('This code will execute as a content script');";
chrome.tabs.executeScript({code: code});

टैब चुनना

आप वर्तमान में सक्रिय के अलावा अन्य टैब में निष्पादित करने के लिए एक टैब आईडी (आमतौर पर अन्य chrome.tabs तरीकों या संदेश से) प्रदान कर सकते हैं।

chrome.tabs.executeScript({
  tabId: tabId,
  file: "content.js"
});

अधिक विकल्प chrome.tabs.executeScript() प्रलेखन और अन्य उदाहरणों में उपलब्ध हैं।

अनुमतियां

chrome.tabs.executeScript() का उपयोग करने के लिए "tabs" अनुमति की आवश्यकता नहीं होती है, लेकिन पृष्ठ के URL के लिए होस्ट की अनुमति की आवश्यकता होती है।

त्रुटियों के लिए जाँच की जा रही है

यदि स्क्रिप्ट इंजेक्शन विफल हो जाता है, तो कोई इसे वैकल्पिक कॉलबैक में पकड़ सकता है:

chrome.tabs.executeScript({file: "content.js"}, function() {
  if(chrome.runtime.lastError) {
    console.error("Script injection failed: " + chrome.runtime.lastError.message);
  }
});

मेनिफेस्ट में मल्टीपल कंटेंट स्क्रिप्ट

एक ही स्थिति, कई स्क्रिप्ट

यदि आपको अन्य सभी स्थितियों के समान होने के साथ कई फ़ाइलों को इंजेक्ट करने की आवश्यकता है, उदाहरण के लिए एक पुस्तकालय शामिल करने के लिए, आप उन सभी को "js" सरणी में सूचीबद्ध कर सकते हैं:

"content_scripts" : [
  {
    "js": ["library.js", "content.js"],
    "matches": ["http://*.example.com/*"]
  }
]

आदेश के मामले: library.js को content.js से पहले निष्पादित किया जाएगा।

एक ही स्क्रिप्ट, कई साइटें

यदि आपको एक ही फाइल को कई साइटों में इंजेक्ट करने की आवश्यकता है, तो आप कई मैच पैटर्न प्रदान कर सकते हैं:

"matches": ["http://example.com/*", "http://example.org/*"]

यदि आपको मूल रूप से प्रत्येक पृष्ठ में इंजेक्ट करने की आवश्यकता है, तो आप व्यापक मिलान पैटर्न का उपयोग कर सकते हैं जैसे "*://*/*" (प्रत्येक HTTP (एस) पृष्ठ से मेल खाता है) या "<all_urls>" (प्रत्येक समर्थित पृष्ठ से मेल खाता है)।

अलग स्क्रिप्ट या अलग साइट

"content_scripts" अनुभाग एक सरणी के रूप में अच्छी तरह से है, इसलिए कोई एक से अधिक सामग्री स्क्रिप्ट ब्लॉक को परिभाषित कर सकता है:

"content_scripts" : [
  {
    "js": ["content.js"],
    "matches": ["http://*.example.com/*"]
  },
  {
    "js": ["something_else.js"],
    "matches": ["http://*.example.org/*"]
  }
]


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow