Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is chrome.browserAction.onClicked undefined?

I'm writing a Chrome extension that will redirect me to a URL when clicking on the browser action icon.

I'm trying to use:

chrome.browserAction.onClicked.addListener 

but I get

Uncaught TypeError: Cannot read property 'onClicked' of undefined

This is my manifest file:

{     "name": "first extension",     "version": "2.2.12",     "description": "redirct to a link icon",     "browser_action": {         "default_icon": "icontest.png",         "default_title": "Do action"     },     "permissions": ["tabs", "http://*/*"],     "content_scripts": [{         "matches": ["http://*.twitter.com/*", "https://*.twitter.com/*"],         "js": ["twterland.js"]     }],     "icons": {         "16": "icontest.png",         "48": "icontest.png",         "128": "icontest.png"     } } 

This is my js file:

chrome.browserAction.onClicked.addListener(function(tab) { alert("hi"); }); 
like image 772
Alon Mahl Avatar asked Jul 15 '12 17:07

Alon Mahl


1 Answers

Classic ManifestV2

For those who already have added something like

"background": {     "scripts": ["background.js"] } 

and still gets Cannot read property 'onClicked' of undefined - just add

"browser_action": {} 

into your manifest.json

ManifestV3

manifest.json: use action not browser_action, see also the migration guide.

"background": {"service_worker": "background.js"} "action": {} 

background.js: use chrome.action not chrome.browserAction.

like image 156
Kirill Oficerov Avatar answered Sep 18 '22 04:09

Kirill Oficerov