← All examples

JavaScript Productivity slack.com

Slack: unread channel counter

Shows a small badge at the top of the screen with the live number of channels that have unread messages.

Code to copy

// Show a small live count of unread channels at the top of the screen
function showUnreadCount() {
  let badge = document.getElementById('jz-slk-unread-count');
  if (!badge) {
    badge = document.createElement('div');
    badge.id = 'jz-slk-unread-count';
    badge.style.cssText = 'position:fixed;top:6px;left:50%;transform:translateX(-50%);z-index:99999;background:#1264a3;color:#fff;font:12px sans-serif;padding:2px 8px;border-radius:10px;pointer-events:none';
    document.body.appendChild(badge);
  }
  const n = document.querySelectorAll('.p-channel_sidebar__channel--unread').length;
  badge.textContent = n + ' unread';
  badge.style.display = n ? 'block' : 'none';
}
showUnreadCount();
const ucObs = new MutationObserver(showUnreadCount);
ucObs.observe(document.documentElement, { childList: true, subtree: true });

How to use this example

  1. Copy the code with the button above.
  2. Install JustZix (2 minutes) and open the extension on the target page.
  3. Add a new rule matching that page.
  4. Paste the code into the rule's JavaScript panel and save — it runs on every page visit.

Rate this example

No ratings yet — be the first.

Does this example work?

Snippets are useless without somewhere to paste them.

JustZix takes 2 minutes to install and runs your code on every matching page. No account, no payment.

Download free See use cases