Ich erstelle eine Google Chrome-Erweiterung, die Screenshots von Websites erfasst, und ich brauche meine popup.js
, um eine Nachricht an meine background.js
senden zu können. Ich erhalte diesen Fehler: Error in response to storage.get: TypeError: Cannot read property 'addListener' of undefined
.Fehler in der Antwort auf storage.get: TypeError: Kann die Eigenschaft 'addListener' von undefined nicht lesen
Hier ist meine aktuellen Code für background.js:
chrome.storage.sync.get({
extensionBehavior: 'onClick',
logIn: false
}, function(items) {
if(items.extensionBehavior == 'onClick'){
// When the extension icon is clicked, send a message to the content script
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (!request.message){
var img;
chrome.tabs.captureVisibleTab(null, {}, function(dataURL){
img = dataURL;
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {"message": tabs[0].url, "statusCode": 0, "image": img, "note" : request.note}, function(response){});
});
});
}
});
}
else {
/* ... */
}
});
Meine popup.js die Nachricht richtig sendet, aber mein Hintergrundskript hält mir den gleichen Fehler zu geben. Ist die API chrome.runtime
innerhalb von chrome.storage.sync.get
nicht verfügbar? Bevor ich diese Methode hinzufügte, funktionierte die chrome.tabs
API gut, und das Popup sendet definitiv die Nachricht (ich testete es).
'chrome.runtime.onMessage' ist nicht definiert. –
aber ich habe 'chrome.runtime.onMessage.addListener' in meinem Inhaltsskript verwendet und es funktionierte gut. @SpencerWieczorek –
Keine Ahnung von diesen Chrome-APIs, aber versuchen Sie 'console.log (chrome.runtime)', um zu sehen, ob Sie das erwartet haben. – Oriol