আমি আমার পপআপ থেকে সক্রিয় ট্যাব ডোম সামগ্রী অ্যাক্সেস করার চেষ্টা করছি। এই আমার প্রকাশ্য:
{
"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"
}
}
ব্যাকগ্রাউন্ড স্ক্রিপ্টগুলি (দৃistence়তার সাথে ইভেন্ট পৃষ্ঠাগুলি: মিথ্যা) বা কন্টেন্ট_স্ক্রিপ্টগুলি যাবার উপায় কিনা তা আমি সত্যিই বিভ্রান্ত। আমি সমস্ত ডকুমেন্টেশন এবং অন্যান্য এসও পোস্ট পড়েছি এবং এটি এখনও আমার কাছে কোনও ধারণা রাখে না।
কেউ অন্যকে কেন ব্যাখ্যা করতে পারে যে আমি অন্যের উপরে কেন ব্যবহার করতে পারি।
এখানে আমি চেষ্টা করেছি এমন ব্যাকগ্রাউন্ড.js রয়েছে:
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
কন্টেন্টস্ক্রিপ্টগুলিতে বার্তা প্রেরণ করে।