5

में नकली क्लिक मैं क्रोम एक्सटेंशन बना रहा हूं। इस एक्सटेंशन का एक हिस्सा पृष्ठ पर ऑनक्लिक ईवेंट को सक्रिय करने के लिए एक क्लिक अनुकरण करने में सक्षम होना चाहिए।क्रोम एक्सटेंशन

function checkForValidUrl(tabId, changeInfo, tab) { 
    // If the letter 'g' is found in the tab's URL... 
    if (tab.url.indexOf('maps') > -1 && tab.url.indexOf('google') > -1) { 
    // ... show the page action. 
    chrome.pageAction.show(tabId); 

    } 
}; 

// Listen for any changes to the URL of any tab. 
chrome.tabs.onUpdated.addListener(checkForValidUrl); 


chrome.pageAction.onClicked.addListener(function() { 
    document.getElementById("paneltoggle2").click(); 
}); 

यहाँ है कि मैं क्रोम के जावा स्क्रिप्ट डीबगिंग से त्रुटि संदेश आ रहा है::

Error in event handler for 'pageAction.onClicked': Cannot call method 'click' of null TypeError: Cannot call method 'click' of null 
    at chrome-extension://deogcaeekneeagffbhdlflichjlodlem/js/main.js:26:42 
    at chrome.Event.dispatchToListener (event_bindings:387:21) 
    at chrome.Event.dispatch_ (event_bindings:373:27) 
    at dispatchArgs (event_bindings:249:22) 
    at Object.chromeHidden.Event.dispatchEvent (event_bindings:257:7) event_bindings:377 
chrome.Event.dispatch_ event_bindings:377 
dispatchArgs event_bindings:249 
chromeHidden.Event.dispatchEvent event_bindings:257 

मैं अनुमान लगा रहा हूँ यह अनुमति के साथ कुछ करने के लिए है कि यहाँ पृष्ठभूमि स्क्रिप्ट से कोड है मेनिफेस्ट फ़ाइल में ... अभी अभी मुझे केवल "टैब" की अनुमति है। क्या क्लिक को अनुकरण करने और त्रुटि प्राप्त करने के लिए मुझे कुछ अन्य अनुमतियां सक्रिय करने की आवश्यकता है? ओह और मैं इसे संस्करण 2 मेनिफेस्ट प्रोटोकॉल के साथ सक्षम बनाने की कोशिश कर रहा हूं।

धन्यवाद, Leinardo

उत्तर

4

स्क्रिप्ट निष्पादन वातावरण के लिए अलग हैं विस्तार और पृष्ठ।

उपयोग chrome.tabs.executeScript

उदाहरण के लिए, गूगल खोज क्षेत्र के लिए कुछ पाठ चिपकाने के लिए

फ़ाइल: manifest.json

{ 
    "name": "My Test", 
    "version": "1", 
    "manifest_version": 2, 
    "background": { 
     "scripts": ["background.js"] 
    }, 
    "page_action": { 
     "default_icon": "icon.png" 
    }, 
    "permissions": ["tabs", "http://*/*", "https://*/*"] 
} 

फ़ाइल: background.js

function checkForValidUrl(tabId, changeInfo, tab) { 
    if (tab.url.indexOf("g") > -1) { 
     chrome.pageAction.show(tabId); 
    } 
} 

chrome.tabs.onUpdated.addListener(checkForValidUrl); 

chrome.pageAction.onClicked.addListener(function(tab) { 
    chrome.tabs.executeScript(tab.id, {code: "document.getElementById('gbqfq').value = 'Hello World!';"}); 
}); 

में मैनिफेस्ट फ़ाइल को होस्ट करने की अनुमति की आवश्यकता है ("http://*/*")।

लेकिन अगर सवाल सख्ती जावास्क्रिप्ट क्लिक करें घटना पर था, इधर देखो How to simulate a click with JavaScript?

+0

पूरी तरह से काम किया। आपको बहुत - बहुत धन्यवाद! –

0

सुनिश्चित नहीं हैं कि अगर यह क्रोम एक्सटेंशन के लिए लागू है, लेकिन हो सकता है आप document.createEvent विधि इस्तेमाल कर सकते हैं जैसा कि यहां बताया:

document.createEvent - Document Object Model (DOM) | MDN

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