У меня есть функция переключения в background.js: каждый раз, когда пользователь нажимает на значок, если расширение было отключено, оно включалось, а если расширение было включено, теперь выключается, и значок меняет местами, чтобы показать, какой из те состояния, в которых он находится. «image1» показывает, что он выключен, а «image2» показывает, что он включен. Однако функция обновляет URL-адрес значка только один раз при щелчке, несмотря на то, что он постоянно запускается из события «onclicked», о чем свидетельствует chrome dev console. Любые идеи?

Вот что находится в background.js:

var off = true;

function updateIcon() {
    if (off == true) {
        off = false;
        chrome.browserAction.setIcon({path:"image1.png"});
        console.log(off);
    }
    else {
        off = true;
        chrome.browserAction.setIcon({path:"image2.png"});
        console.log(off);
    }
    return;
}
chrome.browserAction.onClicked.addListener(updateIcon);
updateIcon();

И мой файл manifest.json:

{
   "background": {
      "scripts": [ "jquery-3.1.1.min.js", "background.js" ]
   },
   "browser_action": {
      "default_icon": "image1.png"
   },
   "content_scripts": [ {
      "css": [ "style.css" ],
      "js": [ "jquery-3.1.1.min.js", "content.js"],
      "matches": [ "https://www.facebook.com/*", "http://www.facebook.com/*", "http://facebook.com/*", "https://facebook.com/*"],
      "all_frames" : true,
      "run_at" : "document_start"
   } ],
   "icons" : {
       "64" : "image1.png",
       "64" : "image2.png"
   },
   "description": "Blah blah blah",
   "manifest_version": 2,
   "name": "Working Title",
   "permissions": [ "activeTab", "https://www.facebook.com/*", "http://www.facebook.com/*" ],
   "update_url": "https://clients2.google.com/service/update2/crx",
   "version": "1.0",
   "web_accessible_resources": [ "images/*.png" ]
}
0
Jessie Richardson 25 Апр 2017 в 06:39

2 ответа

Лучший ответ

Иконки были не правильного размера 128 х 128. Работаем сейчас. Спасибо!

0
Jessie Richardson 25 Апр 2017 в 19:21

Я не знаю, если что-то не так с вашим браузером или компьютером, но я проверил весь код на разных файлах, и он, кажется, работает нормально. Если нет ничего конфликтующего с background.js из content.js, проблема не в коде.

0
Maxim Collingwood 25 Апр 2017 в 12:34