Можно ли изменить цвет значка на основе текста значка? - PullRequest
0 голосов
/ 31 октября 2019

Есть ли способ изменить цвет значков в зависимости от текста? Пример: если мое расширение блокирует 20 объектов, оно может быть желтым, а если оно блокирует 50 объектов, оно может быть красным.

1 Ответ

2 голосов
/ 31 октября 2019

Да, вы можете изменить цвет значка в зависимости от значения в нем.
Поскольку вы устанавливаете значение значка, у вас уже есть значение, и вы можете динамически определять, какой цвет использовать.

После этого вы можете использовать browserAction.setBadgeBackgroundColor для установки цвета.

// First, define badge colors with the minimum threshold.  
// For the sake of simplicity, keep the minimums in order.
const badge_colors = [
    {min: 0, color:  [255, 255, 0, 255] },
    {min: 11, color:  [255, 255, 0, 255] },
    {min: 200, color:  [255, 255, 0, 255] }
];

const badge_counter = 34; // This should already be avaliable, but can also be fetched using browserAction.getBadgeText()


const new_badge_color = badge_colors.reverse() // Reverse the list so the min is in descending order
                                .find(color=>color.min < badge_counter) // Find the first minimum value that is less than the badge counter.

// new_badge_color is now 
// {min: 11, color:  [255, 255, 0, 255] }

Как только у вас появится новый цвет, вы можете установить цвет с помощью setBadgeBackgroundColor

...