
Alon Mahl
Ich schreibe eine Chrome-Erweiterung, die mich zu einer URL weiterleitet, wenn ich auf das Aktionssymbol des Browsers klicke.
Ich versuche zu verwenden:
chrome.browserAction.onClicked.addListener
aber ich bekomme
Uncaught TypeError: Eigenschaft „onClicked“ von undefined kann nicht gelesen werden
Dies ist meine Manifestdatei:
{
"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"
}
}
Dies ist meine js-Datei:
chrome.browserAction.onClicked.addListener(function(tab) { alert("hi"); });

Derek 朕會功夫
Es scheint, als ob der Code in Ihrem ist twterland.js
Datei, die Ihr Inhaltsskript ist. browserAction
kann nur in Erweiterungsseiten verwendet werden, Sie können es also nicht in Inhaltsskripts verwenden.
Dokumentieren: https://developer.chrome.com/extensions/content_scripts
Inhaltsskripte haben jedoch einige Einschränkungen. Sie können nicht:
– Chrome.*-APIs verwenden (außer Teile von chrome.extension)
– Verwenden Sie Variablen oder Funktionen, die auf den Seiten ihrer Erweiterung definiert sind
– Verwenden Sie Variablen oder Funktionen, die von Webseiten oder anderen Inhaltsskripten definiert werden
Legen Sie es auf die Hintergrundseite stattdessen.
Wenn Sie keine haben "browser_action"
Eigenschaft in Ihrer definiert manifest.json
dann kann dieser Fehler auftreten. Die Antwort von @Kirill funktioniert, aber Sie müssen auch ein Leerzeichen hinzufügen icon.png
Datei andernfalls gibt Chrome einen Fehler aus, dass eine solche Datei nicht gefunden werden kann.
Fügen Sie dies dem hinzu manifest.json
Datei sollen Unterdrücke dies ist ein Fehler:
"browser_action": {}
Lesen Sie unbedingt die Dokumentation zum Nachschlagen zur Verwendung der "browser_action"
Einstellung.

Hasan Abu Shally
Bitte beachten Sie, dass Sie nur einen davon heben können app
, browser_action
, page_actions
in Ihrer manifest.json-Datei vorhanden.
Zum Beispiel, um die zu verwenden chrome.browserAction.setBadgeText die solltest du haben browser_action
Feld in Ihrem Manifest.json.

Fergal Moran
Ich habe das auch bekommen und hinzugefügt
"persistent": true
zu meiner Hintergrunddeklaration in manifest.json hat es gelöst.
10099300cookie-checkWarum ist chrome.browserAction.onClicked nicht definiert?yes