क्रोम एक्सटेंशन: इसे हर पेज लोड पर चलाएं


91

मैं एक क्रोम एक्सटेंशन बनाना चाहता हूं जो एक पेज लोड होने के बाद कुछ स्क्रिप्ट को निष्पादित करता है, मुझे यकीन नहीं है कि मुझे इस तर्क को पृष्ठभूमि पृष्ठ पर लागू करना है या यह कहीं और भी हो सकता है, यहां किसी भी मदद की बहुत सराहना की जाएगी।


बस मामले में, यह किसी भी पृष्ठ को ब्राउज़र में लोड होने के बाद स्क्रिप्ट को चलाना चाहिए।
अल्बर्टोश

@ZloySmiertniy हाँ, बस सामग्री स्क्रिप्ट देखें, यह भी सुनिश्चित करें कि रन_at विकल्प में आप document_end डालते हैं और मैचों में भी: आपको यह निर्दिष्ट करने की आवश्यकता है कि url की आपकी स्क्रिप्ट को किसके द्वारा इंजेक्ट किया जाएगा।
अल्बर्टोश

जवाबों:


92

एक पृष्ठभूमि स्क्रिप्ट से आप chrome.tabs.onUpdatedघटना को सुन सकते हैं और changeInfo.statusकॉलबैक पर संपत्ति की जांच कर सकते हैं । यह लोड हो रहा है या पूरा हो सकता है । यदि यह पूरा हो गया है , तो कार्रवाई करें।

उदाहरण:

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete') {

    // do your things

  }
})

क्योंकि यह संभवतः प्रत्येक टैब के पूरा होने पर ट्रिगर होगा, आप यह भी देख सकते हैं कि क्या टैब activeइसके बेनामी विशेषता पर है , जैसे:

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete' && tab.active) {

    // do your things

  }
})

8
Uncaught TypeError: Cannot read property 'onUpdated' of undefined
ग्रीन

2
क्या? यह उत्तर ढाई साल पहले का है। अब शायद सब कुछ बदल गया है।
फिएटजैफ

1
विशिष्ट url पृष्ठ करने के लिए:if (tab.url.startsWith("https://example.com") == false) return;
नबी काज

47

यदि इसे onloadपृष्ठ की घटना पर चलाने की आवश्यकता है , जिसका अर्थ है कि दस्तावेज़ और इसकी सभी संपत्तियां लोड की गई हैं, इसके लिए प्रत्येक पृष्ठ में एम्बेडेड सामग्री स्क्रिप्ट में होना चाहिए , जिसके लिए आप ट्रैक करना चाहते हैं onload


14
यह बेहतर होगा कि कंटेंट स्क्रिप्ट को "document_end" पर "run_at" देखें, कंटेंट_स्क्रिप्ट प्रकट होने दें:run_at: "document_end"
मोहम्मद मंसूर


10

इस कोड को यह करना चाहिए:

manifest.json

   {
      "name": "Alert 'hello world!' on page opening",
      "version": "1.0",
      "manifest_version": 2,
      "content_scripts": [
        {
          "matches": [
            "<all_urls>"
          ],
          "js": ["content.js"]
        }
      ]
    }

content.js

alert('Hello world!')

"मैच" फ़ील्ड में regexp का उपयोग करना संभव है?
बूटज

हाँ, देखेंhttps://developer.chrome.com/extensions/content_scripts#matchAndGlob
डीन मेहान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.