I am trying to build a chrome extension. My content-script is a javascript class with set of functions.
myClass = class {
constructor() {
console.log('Script loaded');
}
get one() {}
get two() {}
get three() {}
}
obj = new myClass();
When I click on my chrome extension, the idea is to load above javascript and I should be able to call all the methods using obj. While I am getting 'Script loaded' message from the constructor in the console, when I try to call the methods using obj, I am getting below error.
obj is not defined.
If I copy-paste the entire content script in the console and try yo call the class methods using obj, it's working without any issues. what am I doing wrong here?
Manifest.json
{
"manifest_version":2,
"name":"ext1",
"description":"some desc",
"version":"1.0.1",
"background": {
"scripts": ["js/background.js"],
"persistent": true
},
"permissions":[
"contextMenus",
"activeTab"
]
}
background.js
var contextMenus = {};
contextMenus.ext1 =
chrome.contextMenus.create(
{ "title": "some title" },
function () {
if (chrome.runtime.lastError) {
console.log(chrome.runtime.lastError.message);
}
}
);
chrome.contextMenus.onClicked.addListener(contextMenuHandler);
function contextMenuHandler(info, tab) {
if (info.menuItemId === contextMenus.ext1) {
chrome.tabs.executeScript({
file: 'js/ext1.js'
});
}
}