如何删除浏览器操作徽章?

时间:2015-05-09 03:55:30

标签: javascript google-chrome google-chrome-extension

我正在使用chrome.browserAction.setBadgeText为我的分机的浏览器图标添加徽章,该图标显示用户待办事项列表中未完成任务的数量。

The badge when the user has tasks

在用户零任务的那一刻,我最终得到了这个:

The badge when the user has zero tasks

然而,我更喜欢的是当用户零任务时根本不显示徽章。

这是我的代码:

setBrowserActionBadge: function(allTasks) {
  var task_count;
  task_count = allTasks.filter(function(task) {
    task.isDone === false;
  }).length;

  task_count = task_count.toString();

  if (task_count === 0) {
    task_count = '';
  }

  chrome.browserAction.setBadgeText({
    'text': task_count
  });

  chrome.browserAction.setBadgeBackgroundColor({
    'color': '#333333'
  });

};

每次检查或添加任务时都会运行此方法,因此会实时更新。

理想的是像chrome.browserAction.clearBadge这样的东西,我可以在任务计数为0时运行以移除徽章。

1 个答案:

答案 0 :(得分:2)

你很亲密。你确实希望传递一个空字符串,但是你的测试if永远不会是真的,因为你使用的是=而不是==。任务计数是一个字符串,因此永远不会=== 0(一个数字)。
您可以使用chrome调试器轻松找到此问题。 <{1}}中的断点永远不会打到,所以你会看到它并且看到它。