मैं अपने पॉपअप से एक्टिवटैब डोम कंटेंट को एक्सेस करने की कोशिश कर रहा हूं। यहाँ मेरी अभिव्यक्ति है:
{
"manifest_version": 2,
"name": "Test",
"description": "Test script",
"version": "0.1",
"permissions": [
"activeTab",
"https://api.domain.com/"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
"browser_action": {
"default_icon": "icon.png",
"default_title": "Chrome Extension test",
"default_popup": "index.html"
}
}
मैं वास्तव में भ्रमित हूं कि क्या पृष्ठभूमि स्क्रिप्ट (दृढ़ता के साथ घटना पृष्ठ: गलत) या content_scripts जाने का रास्ता है। मैंने सभी दस्तावेज और अन्य SO पोस्ट पढ़े हैं और यह अभी भी मेरे लिए कोई मायने नहीं रखता है।
क्या कोई समझा सकता है कि मैं एक का उपयोग क्यों कर सकता हूं।
यहाँ पृष्ठभूमि है। जेएस कि मैं कोशिश कर रहा हूँ:
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse) {
// LOG THE CONTENTS HERE
console.log(request.content);
}
);
और मैं इसे पॉपअप कंसोल से निष्पादित कर रहा हूं:
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendMessage(tab.id, { }, function(response) {
console.log(response);
});
});
मैं ला रहा हूँ:
Port: Could not establish connection. Receiving end does not exist.
अपडेट करें:
{
"manifest_version": 2,
"name": "test",
"description": "test",
"version": "0.1",
"permissions": [
"tabs",
"activeTab",
"https://api.domain.com/"
],
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
],
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
"browser_action": {
"default_icon": "icon.png",
"default_title": "Test",
"default_popup": "index.html"
}
}
content.js
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.text && (request.text == "getDOM")) {
sendResponse({ dom: document.body.innerHTML });
}
}
);
popup.html
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendMessage(tab.id, { action: "getDOM" }, function(response) {
console.log(response);
});
});
जब मैं इसे चलाता हूं, तब भी मुझे वही त्रुटि मिलती है:
undefined
Port: Could not establish connection. Receiving end does not exist. lastError:30
undefined
chrome.runtime.sendMessage
बैकग्राउंडपेज और पॉपअप को संदेश भेजता है।chrome.tabs.sendMessage
ContentScripts को संदेश भेजता है।