2013-02-11 9 views
6

मेरे पास क्रोम एक्सटेंशन है जो मेरी साइट के लिए बना रहा है, वर्तमान में मेरे पास अद्यतन के लिए प्रत्येक मिनट डेटाबेस की जांच है।क्रोम एक्सटेंशन: एक एक्सटेंशन को किसी पृष्ठ पर किसी ईवेंट के लिए सुनना है?

क्या एक्सटेंशन को वास्तविक पृष्ठ पर किसी ईवेंट के लिए सुनना संभव है?

कुछ इस

this.trigger('sendUpdate', data) //this happened on the page 

this.on(sendUpdate, function(){ //this is what the chrome extension listens for 
    //do stuff with data 
}) 

उत्तर

14

जैसे आप एक content_script जोड़ने की जरूरत है। content_script डोम के लिए पूरा उपयोग किया है और आप पेज

पर सभी घटनाओं के लिए बाध्य कर सकते हैं बस menifest फ़ाइल

"content_scripts":[{ 
    "matches":["http://*/*","https://*/*"], 
    "js":"your injected script.js" 
}] 

आप और अधिक जानकारी प्राप्त कर सकते http://developer.chrome.com/extensions/content_scripts.html

अपने प्रश्न से

भी यह लग रहा है में जोड़ना जैसे कि आप एक कस्टम इवेंट के साथ काम करने जा रहे हैं, इसलिए आपकी content_scrip जेएस इस

document.addEventListener('yourEventName', function(e){ 
    //send message to ext 
    var someInformation = {/*your msg here*/} 
    chrome.extension.sendMessage(someInformation, function(response) { 
     //callback 
    }); 
}, false); 

के समान कुछ होने जा रहा है पृष्ठभूमि पृष्ठ को एक संदेश के लिए सुनना चाहिए।

chrome.extension.onMessage.addListener(function(myMessage, sender, sendResponse){ 
    //do something that only the extension has privileges here 
    return true; 
}); 

तो आप पृष्ठ पर सभी स्क्रिप्ट से ईवेंट को ट्रिगर कर सकते हैं ...

var evt = document.createEvent('Event'); 
evt.initEvent('yourEventName', true, true); 
var some_element = document; 
some_element.dispatchEvent(evt); 
+0

आप कैसे सामग्री स्क्रिप्ट –

+0

मैं जवाब अद्यतन से एक घटना के लिए सुनने के लिए एक उदाहरण है। उम्मीद है की वो मदद करदे – Josh

संबंधित मुद्दे