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

Ben*_*rey 11 javascript google-chrome google-chrome-extension

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

用户有任务时的徽章

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

用户零任务时的徽章

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

这是我的代码:

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'
  });

};
Run Code Online (Sandbox Code Playgroud)

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

什么是理想的东西chrome.browserAction.clearBadge,当任务计数为0时,我可以运行,以删除徽章.

Zig*_*del 2

你很接近。您确实想传递一个空字符串,但是您的测试if (task_count === 0)永远不会为真,因为您使用的是 === 而不是 ==。任务计数是一个字符串,因此永远不会 === 0(数字)。
您可以使用 chrome 调试器轻松找到此问题。其中的断点if永远不会命中,所以你会去看看它。