7

Я немного застрял здесь и задавался вопросом, может ли кто-нибудь указать, где я могу ошибаться.Не удалось вызвать chrome.browserAction.onClicked.addListener с расширениями google chrome

Я просто пытаюсь изменить цвет тела на красный при щелчке значка приложения.

manifest.json

{ 
    "name": "Bagde", 
    "description": "", 
    "version": "1", 
    "manifest_version": 2, 
    "background": { 
     "scripts": [ 
      "background.js" 
     ] 
    }, 
    "browser_action": { 
     "default_title": "Test", 
     "default_popup": "popup.html" 
    } 
} 

popup.html

<html> 

    <head> 
     <script src="popup.js"></script> 
    </head> 

    <body> 
     <p>Some Content ..</p> 
    </body> 

</html> 

popup.js

document.addEventListener("DOMContentLoaded", function() { 
    //Get Reference to Functions 
    backGround = chrome.extension.getBackgroundPage(); 
    //Call Function 
    backGround.updateIcon(); 
    }); 

background.js

var i = 1; 

function updateIcon() { 
    i = 1; 
    chrome.browserAction.setBadgeText({ 
     text: 'Test' 
    }); 
    chrome.browserAction.setPopup({ 
     popup: "popup.html" 
    }); 
} 


chrome.browserAction.setBadgeBackgroundColor({ 
    color: [200, 0, 0, 100] 
}); 

window.setInterval(function() { 
    chrome.browserAction.setBadgeText({ 
     text: String(i) 
    }); 
    i++; 
}, 4000); 

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.executeScript(null, 
     {code:"document.body.bgColor='red'"}); 
}); 

любые идеи, что я могу делать неправильно? Спасибо, что нашли время прочитать это.

ответ

13

Если вы определили default_popup, у вас не может быть слушателя для browserAction.onClicked. В этом случае вы можете просто добавить код в свой обработчик к вашему popup.js.

EDIT: То есть, добавить к popup.js следующее:

chrome.tabs.executeScript(null, {code:"document.body.bgColor='red'"}); 
+0

привет @rsanchez так вы говорите, чтобы удалить то, что когда-нибудь я в popup.js и заменить его chrome.browserAction.onClicked. добавления слушателя (функция (вкладка) { \t chrome.tabs.executeScript (нуль, \t \t {код: "document.body.bgColor = 'красный'"});} ) ;? потому что делать это по-прежнему не делает мою страницу красной на клике – BaconJuice

+0

@BaconJuice нет, просто код внутри вашей функции обработчика. См. Мое обновление. – rsanchez

+0

Добавление этого к моему popup.js не делает мою страницу красной на клике. Есть идеи? спасибо за помощь кстати! – BaconJuice

Смежные вопросы