āĻŦāϰā§āĻŖāύāĻž
Google Chrome āĻā§āϞāĻŦāĻžāϰ⧠āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻāĻāĻāύ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰāϤ⧠chrome.action API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤
āĻĒā§āϰāĻžāĻĒā§āϝāϤāĻž
āĻāĻĻā§āĻāĻžāϏāĻŋāϤ
āĻāĻ API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻā§āĻā§āϞāĻŋ āĻ āĻŦāĻļā§āϝāĻ āĻŽā§āϝāĻžāύāĻŋāĻĢā§āϏā§āĻā§ āĻā§āώāĻŖāĻž āĻāϰāϤ⧠āĻšāĻŦā§ā§ˇ
"action" chrome.action API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤā§, 3 -āĻāϰ āĻāĻāĻāĻŋ "manifest_version" āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§āύ āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻŽā§āϝāĻžāύāĻŋāĻĢā§āϏā§āĻ āĻĢāĻžāĻāϞ⧠"action" āĻā§ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰā§āύāĨ¤
{
"name": "Action Extension",
...
"action": {
"default_icon": { // optional
"16": "images/icon16.png", // optional
"24": "images/icon24.png", // optional
"32": "images/icon32.png" // optional
},
"default_title": "Click Me", // optional, shown in tooltip
"default_popup": "popup.html" // optional
},
...
}
"action" āĻā§ (āĻāϰ āĻŦāĻžāĻā§āĻāĻžāĻĻā§āϰ āϏāĻžāĻĨā§) āĻāĻā§āĻāĻŋāĻāĨ¤ āϝāĻāύ āĻāĻāĻŋ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰāĻž āĻšāϝāĻŧ āύāĻž, āϤāĻāύāĻ āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻŽā§āύā§āϤ⧠āĻ
ā§āϝāĻžāĻā§āϏā§āϏ āĻĻā§āĻāϝāĻŧāĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻžāϰ āĻāĻā§āϏāĻā§āύāĻļāύ āĻā§āϞāĻŦāĻžāϰ⧠āĻĻā§āĻāĻžāύ⧠āĻšāϝāĻŧāĨ¤ āĻāĻ āĻāĻžāϰāĻŖā§, āĻāĻŽāϰāĻž āϏā§āĻĒāĻžāϰāĻŋāĻļ āĻāϰāĻŋ āϝ⧠āĻāĻĒāύāĻŋ āϏāϰā§āĻŦāĻĻāĻž āĻ
āύā§āϤāϤ "action" āĻāĻŦāĻ "default_icon" āĻā§āĻā§āϞāĻŋ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰā§āύ⧎
āϧāĻžāϰāĻŖāĻž āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ
UI āĻāϰ āĻ āĻāĻļ
āĻāĻāĻāύ
āĻāĻāĻāύāĻāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻā§āϞāĻŦāĻžāϰ⧠āĻĒā§āϰāϧāĻžāύ āĻāĻŋāϤā§āϰ, āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻŽā§āϝāĻžāύāĻŋāĻĢā§āϏā§āĻā§āϰ "action" āĻā§-āϤ⧠"default_icon" āĻā§ āĻĻā§āĻŦāĻžāϰāĻž āϏā§āĻ āĻāϰāĻž āĻšāϝāĻŧ⧎ āĻāĻāĻāύ 16 āĻĄāĻŋāĻāĻžāĻāϏ-āϏā§āĻŦāĻžāϧā§āύ āĻĒāĻŋāĻā§āϏā§āϞ (DIPs) āĻāĻāĻĄāĻŧāĻž āĻāĻŦāĻ āϞāĻŽā§āĻŦāĻž āĻšāϤ⧠āĻšāĻŦā§āĨ¤
"default_icon" āĻā§ āĻšāϞ āĻāĻŋāϤā§āϰ āĻĒāĻžāĻĨā§āϰ āĻāĻāĻžāϰā§āϰ āĻāĻāĻāĻŋ āĻ
āĻāĻŋāϧāĻžāύāĨ¤ āĻā§āύ āĻāĻŋāϤā§āϰ āϏā§āĻā§āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§ āϤāĻž āĻāϝāĻŧāύ āĻāϰāϤ⧠Chrome āĻāĻ āĻāĻāĻāύāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§ā§ˇ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āϏāĻ āĻŋāĻ āĻŽāĻŋāϞ āĻā§āĻāĻā§ āύāĻž āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāϝāĻŧ, Chrome āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻžāĻā§āϰ āĻāĻĒāϞāĻŦā§āϧāĻāĻŋ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰ⧠āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻŋāϤā§āϰā§āϰ āϏāĻžāĻĨā§ āĻŽāĻžāύāĻžāύāϏāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āϏā§āĻā§āϞ āĻāϰā§, āϝāĻž āĻāĻŦāĻŋāϰ āĻā§āĻŖāĻŽāĻžāύāĻā§ āĻĒā§āϰāĻāĻžāĻŦāĻŋāϤ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
āϝā§āĻšā§āϤ⧠1.5x āĻŦāĻž 1.2x āĻāϰ āĻŽāϤ⧠āĻāĻŽ-āϏāĻžāϧāĻžāϰāĻŖ āϏā§āĻā§āϞ āĻĢā§āϝāĻžāĻā§āĻāϰ āϏāĻš āĻĄāĻŋāĻāĻžāĻāϏāĻā§āϞāĻŋ āĻāϰāĻ āϏāĻžāϧāĻžāϰāĻŖ āĻšāϝāĻŧā§ āĻāĻ āĻā§, āĻāĻŽāϰāĻž āĻāĻĒāύāĻžāĻā§ āĻāĻĒāύāĻžāϰ āĻāĻāĻāύāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻāĻāĻžāϧāĻŋāĻ āĻŽāĻžāĻĒ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāϤ⧠āĻāϤā§āϏāĻžāĻšāĻŋāϤ āĻāϰāĻŋ⧎ āĻāĻāĻŋ āϏāĻŽā§āĻāĻžāĻŦā§āϝ āĻāĻāĻāύ āĻĒā§āϰāĻĻāϰā§āĻļāύā§āϰ āĻāĻāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻŦāĻŋāϰā§āĻĻā§āϧ⧠āĻāĻĒāύāĻžāϰ āĻāĻā§āϏāĻā§āύāĻļāύāĻā§ āĻāĻŦāĻŋāώā§āϝāϤ⧠āĻĒā§āϰāĻŽāĻžāĻŖ āĻāϰā§āĨ¤ āϝāĻžāĻāĻšā§āĻ, āϝāĻĻāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻāĻŋ āĻāĻāĻ āĻŽāĻžāĻĒ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻž āĻšāϝāĻŧ, "default_icon" āĻā§ āĻāĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻ-āĻāĻ āϏā§āĻ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠āĻāĻāĻāĻŋ āĻ
āĻāĻŋāϧāĻžāύā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻāĻāĻāĻŋ āĻāĻāĻāύā§āϰ āĻĒāĻžāĻĨā§āϰ āϏāĻžāĻĨā§āĨ¤
āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻāĻŋāύā§āύ āĻāĻŽā§āĻ āĻĒāĻžāĻĨ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰ⧠āĻŦāĻž HTML āĻā§āϝāĻžāύāĻāĻžāϏ āĻāϞāĻŋāĻŽā§āύā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻŋ āĻāϤāĻŋāĻļā§āϞ-āĻāϤā§āĻĒāύā§āύ āĻāĻāĻāύ āĻĒā§āϰāĻĻāĻžāύ āĻāϰ⧠āĻāĻĒāύāĻžāϰ āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻāĻāĻāύāĻāĻŋ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽā§āϝāĻžāĻāĻŋāĻāĻāĻžāĻŦā§ āϏā§āĻ āĻāϰāϤ⧠action.setIcon() āĻ āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻ
āĻĨāĻŦāĻž āϝāĻĻāĻŋ āĻā§āύ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻĒāϰāĻŋāώā§āĻŦāĻž āĻāϰā§āĻŽā§, āĻ
āĻĢāϏā§āĻā§āϰāĻŋāύ āĻā§āϝāĻžāύāĻāĻžāϏ API āĻĨā§āĻā§ āϏā§āĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
const canvas = new OffscreenCanvas(16, 16);
const context = canvas.getContext('2d');
context.clearRect(0, 0, 16, 16);
context.fillStyle = '#00FF00'; // Green
context.fillRect(0, 0, 16, 16);
const imageData = context.getImageData(0, 0, 16, 16);
chrome.action.setIcon({imageData: imageData}, () => { /* ... */ });
āĻĒā§āϝāĻžāĻāĻĄ āĻāĻā§āϏāĻā§āύāĻļāύāĻā§āϞāĻŋāϰ āĻāύā§āϝ (āĻāĻāĻāĻŋ .crx āĻĢāĻžāĻāϞ āĻĨā§āĻā§ āĻāύāϏā§āĻāϞ āĻāϰāĻž), āĻāĻŦāĻŋāĻā§āϞāĻŋ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻĢāϰā§āĻŽā§āϝāĻžāĻā§ āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝāĻž āĻŦā§āϞāĻŋāĻā§āĻ āϰā§āύā§āĻĄāĻžāϰāĻŋāĻ āĻāĻā§āĻāĻŋāύ āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§, āϝāĻžāϰ āĻŽāϧā§āϝ⧠PNG, JPEG, BMP, ICO āĻāĻŦāĻ āĻ āύā§āϝāĻžāύā§āϝ āϰāϝāĻŧā§āĻā§ā§ˇ SVG āϏāĻŽāϰā§āĻĨāĻŋāϤ āύāϝāĻŧāĨ¤ āĻāύāĻĒā§āϝāĻžāĻ āĻāϰāĻž āĻāĻā§āϏāĻā§āύāĻļāύāĻā§āϞāĻŋāĻā§ āĻ āĻŦāĻļā§āϝāĻ PNG āĻāĻŦāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
āĻā§āϞāĻāĻŋāĻĒ (āĻļāĻŋāϰā§āύāĻžāĻŽ)
āĻā§āϞāĻāĻŋāĻĒ, āĻŦāĻž āĻļāĻŋāϰā§āύāĻžāĻŽ, āĻĒā§āϰāĻĻāϰā§āĻļāĻŋāϤ āĻšāϝāĻŧ āϝāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϤāĻžāĻĻā§āϰ āĻŽāĻžāĻāϏ āĻĒāϝāĻŧā§āύā§āĻāĻžāϰ āĻā§āϞāĻŦāĻžāϰ⧠āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻāĻāĻāύā§āϰ āĻāĻĒāϰ āϧāϰ⧠āϰāĻžāĻā§āĨ¤ āĻŦā§āϤāĻžāĻŽāĻāĻŋ āĻĢā§āĻāĻžāϏ āĻāϰāϞ⧠āĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāύ āϰāĻŋāĻĄāĻžāϰāĻĻā§āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻā§āĻāĻžāϰāĻŋāϤ āĻ ā§āϝāĻžāĻā§āϏā§āϏāϝā§āĻā§āϝ āĻĒāĻžāĻ ā§āϝā§āϰ āĻŽāϧā§āϝā§āĻ āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻĨāĻžāĻā§āĨ¤
āĻĄāĻŋāĻĢāϞā§āĻ āĻā§āϞāĻāĻŋāĻĒāĻāĻŋ manifest.json āĻ "action" āĻā§-āĻāϰ "default_title" āĻā§āώā§āϤā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻĒāύāĻŋ action.setTitle() āĻ āĻāϞ āĻāϰ⧠āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻāϤāĻāĻžāĻŦā§ āĻāĻāĻŋ āϏā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻŦā§āϝāĻžāĻ
āĻā§āϰāĻŋāϝāĻŧāĻžāĻā§āϞāĻŋ āĻāĻā§āĻāĻŋāĻāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ "āĻŦā§āϝāĻžāĻ" āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠â āĻāĻāĻāύā§āϰ āĻāĻĒāϰ āϏā§āϤāϰāϝā§āĻā§āϤ āĻāĻŋāĻā§ āĻĒāĻžāĻ ā§āϝāĨ¤ āĻāĻāĻŋ āĻāĻĒāύāĻžāĻā§ āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻ āĻŦāϏā§āĻĨāĻž, āϝā§āĻŽāύ āĻāĻāĻāĻŋ āĻāĻžāĻāύā§āĻāĻžāϰ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻ āϞā§āĻĒ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āϤāĻĨā§āϝ āĻĒā§āϰāĻĻāϰā§āĻļāύā§āϰ āĻāύā§āϝ āĻ ā§āϝāĻžāĻāĻļāύ āĻāĻĒāĻĄā§āĻ āĻāϰāϤ⧠āĻĻā§āϝāĻŧāĨ¤ āĻŦā§āϝāĻžāĻāĻāĻŋāϤ⧠āĻāĻāĻāĻŋ āĻĒāĻžāĻ ā§āϝ āĻāĻĒāĻžāĻĻāĻžāύ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒāĻāĻā§āĻŽāĻŋāϰ āϰāĻ āϰāϝāĻŧā§āĻā§ā§ˇ āϝā§āĻšā§āϤ⧠āϏā§āĻĨāĻžāύ āϏā§āĻŽāĻŋāϤ, āĻāĻŽāϰāĻž āϏā§āĻĒāĻžāϰāĻŋāĻļ āĻāϰāĻŋ āϝ⧠āĻŦā§āϝāĻžāĻ āĻĒāĻžāĻ ā§āϝ āĻāĻžāϰ āĻŦāĻž āϤāĻžāϰ āĻāĻŽ āĻ āĻā§āώāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤
āĻāĻāĻāĻŋ āĻŦā§āϝāĻžāĻ āϤā§āϰāĻŋ āĻāϰāϤā§, āĻāϰā§āĻŽāϏā§āĻā§āϤ⧠āĻāĻāĻŋ āϏā§āĻ āĻāϰā§āύ action.setBadgeBackgroundColor() āĻāĻŦāĻ action.setBadgeText() āĻāϞ āĻāϰā§āĨ¤ āĻŽā§āϝāĻžāύāĻŋāĻĢā§āϏā§āĻā§ āĻā§āύ⧠āĻĄāĻŋāĻĢāϞā§āĻ āĻŦā§āϝāĻžāĻ āϏā§āĻāĻŋāĻ āύā§āĻāĨ¤ āĻŦā§āϝāĻžāĻā§āϰ āϰāĻā§āϰ āĻŽāĻžāύ 0 āĻĨā§āĻā§ 255 āĻāϰ āĻŽāϧā§āϝ⧠āĻāĻžāϰāĻāĻŋ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻžāϰ āĻāĻāĻāĻŋ āĻ
ā§āϝāĻžāϰ⧠āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝāĻž āĻŦā§āϝāĻžāĻā§āϰ RGBA āϰāĻ āĻŦāĻž āĻāĻāĻāĻŋ CSS āϰāĻā§āϰ āĻŽāĻžāύ āϏāĻš āĻāĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻ āϤā§āϰāĻŋ āĻāϰā§āĨ¤
chrome.action.setBadgeBackgroundColor(
{color: [0, 255, 0, 0]}, // Green
() => { /* ... */ },
);
chrome.action.setBadgeBackgroundColor(
{color: '#00FF00'}, // Also green
() => { /* ... */ },
);
chrome.action.setBadgeBackgroundColor(
{color: 'green'}, // Also, also green
() => { /* ... */ },
);
āĻĒāĻĒāĻāĻĒ
āϝāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻā§āϞāĻŦāĻžāϰ⧠āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻ ā§āϝāĻžāĻāĻļāύ āĻŦā§āϤāĻžāĻŽā§ āĻā§āϞāĻŋāĻ āĻāϰā§āύ āϤāĻāύ āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāĻāĻļāύā§āϰ āĻĒāĻĒāĻāĻĒ āĻĻā§āĻāĻžāύ⧠āĻšāϝāĻŧāĨ¤ āĻĒāĻĒāĻāĻĒā§ āĻāĻĒāύāĻžāϰ āĻĒāĻāύā§āĻĻā§āϰ āϝā§āĻā§āύ⧠HTML āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻāϰ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤā§āϰ āϏāĻžāĻĨā§ āĻŽāĻžāύāĻžāύāϏāĻ āĻāĻāĻžāϰ āĻĻā§āĻāϝāĻŧāĻž āĻšāĻŦā§āĨ¤ āĻĒāĻĒāĻāĻĒā§āϰ āĻāĻāĻžāϰ āĻ āĻŦāĻļā§āϝāĻ 25x25 āĻāĻŦāĻ 800x600 āĻĒāĻŋāĻā§āϏā§āϞā§āϰ āĻŽāϧā§āϝ⧠āĻšāϤ⧠āĻšāĻŦā§āĨ¤
āĻĒāĻĒāĻāĻĒāĻāĻŋ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ manifest.json āĻĢāĻžāĻāϞā§āϰ "action" āĻā§-āϤ⧠"default_popup" āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āĻĻā§āĻŦāĻžāϰāĻž āϏā§āĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āĻāĻĒāϏā§āĻĨāĻŋāϤ āĻĨāĻžāĻā§, āĻāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻāĻŋ āĻāĻā§āϏāĻā§āύāĻļāύ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋāϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āĻāĻĒā§āĻā§āώāĻŋāĻ āĻĒāĻĨ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰāĻŦā§āĨ¤ āĻāĻāĻŋ action.setPopup() āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻŋ āĻāĻŋāύā§āύ āĻāĻĒā§āĻā§āώāĻŋāĻ āĻĒāĻĨ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāϤāĻŋāĻļā§āϞāĻāĻžāĻŦā§ āĻāĻĒāĻĄā§āĻ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ
āĻĒā§āϰāϤāĻŋ āĻā§āϝāĻžāĻŦ āĻ āĻŦāϏā§āĻĨāĻž
āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻā§āϝāĻžāĻŦā§āϰ āĻāύā§āϝ āĻāĻā§āϏāĻā§āύāĻļāύ āĻ
ā§āϝāĻžāĻāĻļāύā§āϰ āĻŦāĻŋāĻāĻŋāύā§āύ āĻ
āĻŦāϏā§āĻĨāĻž āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻā§āϝāĻžāĻŦā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻŽāĻžāύ āϏā§āĻ āĻāϰāϤā§, action API āĻāϰ āϏā§āĻāĻŋāĻ āĻĒāĻĻā§āϧāϤāĻŋāϤ⧠tabId āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āϝāĻžāĻŦā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻžāĻ āĻĒāĻžāĻ ā§āϝ āϏā§āĻ āĻāϰāϤā§, āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤāĻā§āϞāĻŋāϰ āĻŽāϤ⧠āĻāĻŋāĻā§ āĻāϰā§āύ:
function getTabId() { /* ... */}
function getTabBadge() { /* ... */}
chrome.action.setBadgeText(
{
text: getTabBadge(tabId),
tabId: getTabId(),
},
() => { ... }
);
āϝāĻĻāĻŋ tabId āĻĒā§āϰāĻĒāĻžāϰā§āĻāĻŋ āĻŦāĻžāĻĻ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧ, āϏā§āĻāĻŋāĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻā§āϞā§āĻŦāĻžāϞ āϏā§āĻāĻŋāĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻā§āϝāĻžāĻŦ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏā§āĻāĻŋāĻāϏ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§ āϏā§āĻāĻŋāĻāϏā§āϰ āĻā§āϝāĻŧā§ āĻ
āĻā§āϰāĻžāϧāĻŋāĻāĻžāϰ āύā§āϝāĻŧāĨ¤
āϏāĻā§āϰāĻŋāϝāĻŧ āĻ āĻŦāϏā§āĻĨāĻž
āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§, āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻā§āϝāĻžāĻŦā§ āĻā§āϞāĻŦāĻžāϰ āĻ
ā§āϝāĻžāĻāĻļāύ āϏāĻā§āϰāĻŋāϝāĻŧ (āĻā§āϞāĻŋāĻāϝā§āĻā§āϝ) āĻĨāĻžāĻā§āĨ¤ āĻāĻĒāύāĻŋ āĻŽā§āϝāĻžāύāĻŋāĻĢā§āϏā§āĻā§āϰ action āĻā§-āϤ⧠default_state āĻĒā§āϰāĻĒāĻžāϰā§āĻāĻŋ āϏā§āĻ āĻāϰ⧠āĻāĻ āĻĄāĻŋāĻĢāϞā§āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āϝāĻĻāĻŋ default_state "disabled" āϤ⧠āϏā§āĻ āĻāϰāĻž āĻĨāĻžāĻā§, āϤāĻŦā§ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāĻŋ āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āύāĻŋāώā§āĻā§āϰāĻŋāϝāĻŧ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻā§āϞāĻŋāĻāϝā§āĻā§āϝ āĻšāϤ⧠āĻĒā§āϰā§āĻā§āϰāĻžāĻŽā§āϝāĻžāĻāĻŋāĻāĻāĻžāĻŦā§ āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻž āĻāĻŦāĻļā§āϝāĻ⧎ āϝāĻĻāĻŋ default_state "enabled" (āĻĄāĻŋāĻĢāϞā§āĻ) āϤ⧠āϏā§āĻ āĻāϰāĻž āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āĻ
ā§āϝāĻžāĻāĻļāύāĻāĻŋ āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āĻā§āϞāĻŋāĻ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
āĻāĻĒāύāĻŋ action.enable() āĻāĻŦāĻ action.disable() āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāϰā§āĻŽāϏā§āĻā§āĻāĻžāĻŦā§ āϏā§āĻā§āĻ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻĒāĻĒāĻāĻĒ (āϝāĻĻāĻŋ āĻĨāĻžāĻā§) āĻŦāĻž action.onClicked āĻāĻā§āύā§āĻ āĻāĻĒāύāĻžāϰ āĻāĻā§āϏāĻā§āύāĻļāύ⧠āĻĒāĻžāĻ āĻžāύ⧠āĻšāϝāĻŧ āĻāĻŋāύāĻž āϤāĻž āĻĒā§āϰāĻāĻžāĻŦāĻŋāϤ āĻāϰā§; āĻāĻāĻŋ āĻā§āϞāĻŦāĻžāϰ⧠āĻāϰā§āĻŽā§āϰ āĻāĻĒāϏā§āĻĨāĻŋāϤāĻŋ āĻĒā§āϰāĻāĻžāĻŦāĻŋāϤ āĻāϰ⧠āύāĻžāĨ¤
āĻāĻĻāĻžāĻšāϰāĻŖ
āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻāĻĻāĻžāĻšāϰāĻŖāĻā§āϞāĻŋ āĻāĻŋāĻā§ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻĒāĻžāϝāĻŧ āĻĻā§āĻāĻžāϝāĻŧ āϝā§āĻā§āϞāĻŋ āĻāĻā§āϏāĻā§āύāĻļāύāĻā§āϞāĻŋāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ⧎ āĻāĻ APIāĻāĻŋ āĻā§āώā§āĻāĻž āĻāϰāϤā§, chrome-extension-samples repository āĻĨā§āĻā§ Action API āĻāĻĻāĻžāĻšāϰāĻŖāĻāĻŋ āĻāύāϏā§āĻāϞ āĻāϰā§āύ⧎
āĻāĻāĻāĻŋ āĻĒāĻĒāĻāĻĒ āĻĻā§āĻāĻžāύ
āϝāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻ
ā§āϝāĻžāĻāĻļāύ⧠āĻā§āϞāĻŋāĻ āĻāϰā§āύ āϤāĻāύ āĻāĻāĻāĻŋ āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒāĻĒāĻāĻĒ āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāĻž āϏāĻžāϧāĻžāϰāĻŖāĨ¤ āĻāĻĒāύāĻžāϰ āύāĻŋāĻāϏā§āĻŦ āĻāĻā§āϏāĻā§āύāĻļāύ⧠āĻāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻāϰāϤā§, āĻāĻĒāύāĻžāϰ manifest.json āĻ āĻĒāĻĒāĻāĻĒ āĻā§āώāĻŖāĻž āĻāϰā§āύ āĻāĻŦāĻ Chrome-āĻāϰ āĻĒāĻĒāĻāĻĒā§ āϝ⧠āϏāĻžāĻŽāĻā§āϰ⧠āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāĻž āĻāĻāĻŋāϤ āϤāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§āύ⧎
// manifest.json
{
"name": "Action popup demo",
"version": "1.0",
"manifest_version": 3,
"action": {
"default_title": "Click to view a popup",
"default_popup": "popup.html"
}
}
<!-- popup.html -->
<!DOCTYPE html>
<html>
<head>
<style>
html {
min-height: 5em;
min-width: 10em;
background: salmon;
}
</style>
</head>
<body>
<p>Hello, world!</p>
</body>
</html>
āĻā§āϞāĻŋāĻā§ āĻāĻāĻāĻŋ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāύāĻā§āĻā§āĻ āĻāϰā§āύ
āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻšāϞ āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻā§āϰāĻŋāϝāĻŧāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϤāĻžāĻĻā§āϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻāĻŋ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻžāĨ¤ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻāĻĻāĻžāĻšāϰāĻŖ āĻāĻ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻĒā§āϰāĻĻāϰā§āĻļāύ. āϝāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻ ā§āϝāĻžāĻāĻļāύ⧠āĻā§āϞāĻŋāĻ āĻāϰā§āύ, āϤāĻāύ āĻāĻā§āϏāĻā§āύāĻļāύ āĻŦāϰā§āϤāĻŽāĻžāύ āĻĒā§āώā§āĻ āĻžāϝāĻŧ āĻāĻāĻāĻŋ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāύāĻā§āĻā§āĻ āĻāϰā§āĨ¤ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āϤāĻžāϰāĻĒāϰ āϏāĻŦāĻāĻŋāĻā§ āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§āĻā§ āϤāĻž āϝāĻžāĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāϤāϰā§āĻāϤāĻž āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰā§āĨ¤
// manifest.json
{
"name": "Action script injection demo",
"version": "1.0",
"manifest_version": 3,
"action": {
"default_title": "Click to show an alert"
},
"permissions": ["activeTab", "scripting"],
"background": {
"service_worker": "background.js"
}
}
// background.js
chrome.action.onClicked.addListener((tab) => {
chrome.scripting.executeScript({
target: {tabId: tab.id},
files: ['content.js']
});
});
// content.js
alert('Hello, world!');
āĻā§āώāĻŖāĻžāĻŽā§āϞāĻ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āϏāĻš āĻāϰā§āĻŽ āĻ āύā§āĻāϰāĻŖ āĻāϰā§āύ
āĻāĻ āĻāĻĻāĻžāĻšāϰāĻŖāĻāĻŋ āĻĻā§āĻāĻžāϝāĻŧ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄ āϞāĻāĻŋāĻ (a) āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāĻāĻļāύāĻā§ āĻ āĻā§āώāĻŽ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ (b) āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻžāĻāĻā§ āĻ ā§āϝāĻžāĻāĻļāύ āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāϤ⧠declarative Content āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
// service-worker.js
// Wrap in an onInstalled callback to avoid unnecessary work
// every time the service worker is run
chrome.runtime.onInstalled.addListener(() => {
// Page actions are disabled by default and enabled on select tabs
chrome.action.disable();
// Clear all rules to ensure only our expected rules are set
chrome.declarativeContent.onPageChanged.removeRules(undefined, () => {
// Declare a rule to enable the action on example.com pages
let exampleRule = {
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: {hostSuffix: '.example.com'},
})
],
actions: [new chrome.declarativeContent.ShowAction()],
};
// Finally, apply our new array of rules
let rules = [exampleRule];
chrome.declarativeContent.onPageChanged.addRules(rules);
});
});
āĻĒā§āϰāĻāĻžāϰāĻā§āĻĻ
OpenPopupOptions
āĻŦā§āĻļāĻŋāώā§āĻā§āϝ
- āĻāĻāύā§āĻĄā§ āĻāĻāĻĄāĻŋ
āϏāĻāĻā§āϝāĻž āĻāĻā§āĻāĻŋāĻ
āĻ ā§āϝāĻžāĻāĻļāύ āĻĒāĻĒāĻāĻĒ āĻā§āϞāĻžāϰ āĻāύā§āϝ āĻāĻāύā§āĻĄā§āϰ āĻāĻāĻĄāĻŋāĨ¤ āĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĨāĻžāĻāϞ⧠āĻŦāϰā§āϤāĻŽāĻžāύ⧠āϏāĻā§āϰāĻŋāϝāĻŧ āĻāĻāύā§āĻĄā§āϤ⧠āĻĄāĻŋāĻĢāϞā§āĻāĨ¤
TabDetails
āĻŦā§āĻļāĻŋāώā§āĻā§āϝ
- āĻā§āϝāĻžāĻŦāĻāĻāĻĄāĻŋ
āϏāĻāĻā§āϝāĻž āĻāĻā§āĻāĻŋāĻ
āĻā§āϝā§āϝāĻŧāĻžāϰ⧠āĻāϰāĻžāϰ āĻāύā§āϝ āĻā§āϝāĻžāĻŦā§āϰ āĻāĻāĻĄāĻŋ āϝāĻĻāĻŋ āĻā§āύ āĻā§āϝāĻžāĻŦ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻž āύāĻž āĻĨāĻžāĻā§, āĻ -āĻā§āϝāĻžāĻŦ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻ āĻŦāϏā§āĻĨāĻž āĻĢā§āϰāϤ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧāĨ¤
UserSettings
āĻāĻāĻāĻŋ āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏā§āĻāĻŋāĻāϏā§āϰ āϏāĻāĻā§āϰāĻšā§ˇ
āĻŦā§āĻļāĻŋāώā§āĻā§āϝ
- isOnToolbar
āĻŦā§āϞāĻŋāϝāĻŧāĻžāύ
āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻ ā§āϝāĻžāĻāĻļāύ āĻāĻāĻāύ āĻŦā§āϰāĻžāĻāĻāĻžāϰ āĻāĻāύā§āĻĄā§āĻā§āϰ āĻļā§āϰā§āώ-āϏā§āϤāϰā§āϰ āĻā§āϞāĻŦāĻžāϰ⧠āĻĻā§āĻļā§āϝāĻŽāĻžāύ āĻāĻŋāύāĻž (āĻ āϰā§āĻĨāĻžā§, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻā§āϏāĻā§āύāĻļāύāĻāĻŋ 'āĻĒāĻŋāύ' āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŋāύāĻž)āĨ¤
UserSettingsChange
āĻŦā§āĻļāĻŋāώā§āĻā§āϝ
- isOnToolbar
āĻŦā§āϞāĻŋāϝāĻŧāĻžāύ āĻāĻā§āĻāĻŋāĻ
āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻ ā§āϝāĻžāĻāĻļāύ āĻāĻāĻāύ āĻŦā§āϰāĻžāĻāĻāĻžāϰ āĻāĻāύā§āĻĄā§āĻā§āϰ āĻļā§āϰā§āώ-āϏā§āϤāϰā§āϰ āĻā§āϞāĻŦāĻžāϰ⧠āĻĻā§āĻļā§āϝāĻŽāĻžāύ āĻāĻŋāύāĻž (āĻ āϰā§āĻĨāĻžā§, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻā§āϏāĻā§āύāĻļāύāĻāĻŋ 'āĻĒāĻŋāύ' āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŋāύāĻž)āĨ¤
āĻĒāĻĻā§āϧāϤāĻŋ
disable()
chrome.action.disable(
tabId?: number,
): Promise<void>
āĻāĻāĻāĻŋ āĻā§āϝāĻžāĻŦā§āϰ āĻāύā§āϝ āĻāϰā§āĻŽ āύāĻŋāώā§āĻā§āϰāĻŋāϝāĻŧ āĻāϰā§āĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻā§āϝāĻžāĻŦāĻāĻāĻĄāĻŋ
āϏāĻāĻā§āϝāĻž āĻāĻā§āĻāĻŋāĻ
āĻā§āϝāĻžāĻŦā§āϰ āĻāĻāĻĄāĻŋ āϝāĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻŋ āĻ ā§āϝāĻžāĻāĻļāύāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻāĻžāύāĨ¤
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ <void>
enable()
chrome.action.enable(
tabId?: number,
): Promise<void>
āĻāĻāĻāĻŋ āĻā§āϝāĻžāĻŦā§āϰ āĻāύā§āϝ āĻ ā§āϝāĻžāĻāĻļāύ āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰā§āĨ¤ āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§, āĻāϰā§āĻŽ āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻž āĻšāϝāĻŧ.
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻā§āϝāĻžāĻŦāĻāĻāĻĄāĻŋ
āϏāĻāĻā§āϝāĻž āĻāĻā§āĻāĻŋāĻ
āĻā§āϝāĻžāĻŦā§āϰ āĻāĻāĻĄāĻŋ āϝāĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻŋ āĻ ā§āϝāĻžāĻāĻļāύāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻāĻžāύāĨ¤
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ <void>
getBadgeBackgroundColor()
chrome.action.getBadgeBackgroundColor(
details: TabDetails,
): Promise<extensionTypes.ColorArray>
āĻāϰā§āĻŽā§āϰ āĻĒāĻāĻā§āĻŽāĻŋāϰ āϰāĻ āĻĒāĻžāϝāĻŧāĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ< extensionTypes.ColorArray >
getBadgeText()
chrome.action.getBadgeText(
details: TabDetails,
): Promise<string>
āĻāϰā§āĻŽā§āϰ āĻŦā§āϝāĻžāĻ āĻĒāĻžāĻ ā§āϝ āĻĒāĻžāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āĻā§āύ⧠āĻā§āϝāĻžāĻŦ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻž āύāĻž āĻĨāĻžāĻā§, āĻ -āĻā§āϝāĻžāĻŦ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŦā§āϝāĻžāĻ āĻā§āĻā§āϏāĻ āĻĢā§āϰāϤ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧāĨ¤ DisplayActionCountAsBadgeText āϏāĻā§āώāĻŽ āĻāϰāĻž āĻĨāĻžāĻāϞā§, declarativeNetRequestFeedback āĻ āύā§āĻŽāϤāĻŋ āĻāĻĒāϏā§āĻĨāĻŋāϤ āύāĻž āĻĨāĻžāĻāϞ⧠āĻŦāĻž āĻā§āϝāĻžāĻŦ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŦā§āϝāĻžāĻ āĻā§āĻā§āϏāĻ āĻĻā§āĻāϝāĻŧāĻž āύāĻž āĻĨāĻžāĻāϞ⧠āĻāĻāĻāĻŋ āϏā§āĻĨāĻžāύāϧāĻžāϰāĻ āĻĒāĻžāĻ ā§āϝ āĻĢā§āϰāϤ āĻĻā§āĻāϝāĻŧāĻž āĻšāĻŦā§āĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ<string>
getBadgeTextColor()
chrome.action.getBadgeTextColor(
details: TabDetails,
): Promise<extensionTypes.ColorArray>
āĻāϰā§āĻŽā§āϰ āĻĒāĻžāĻ ā§āϝ āϰāĻ āĻĒāĻžāϝāĻŧāĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ< extensionTypes.ColorArray >
getPopup()
chrome.action.getPopup(
details: TabDetails,
): Promise<string>
āĻāĻ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒā§āϰ āĻāύā§āϝ āĻĒāĻĒāĻāĻĒ āĻšāĻŋāϏāĻžāĻŦā§ html āύāĻĨāĻŋ āϏā§āĻ āĻāϰā§āĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ<string>
getTitle()
chrome.action.getTitle(
details: TabDetails,
): Promise<string>
āĻāϰā§āĻŽā§āϰ āĻļāĻŋāϰā§āύāĻžāĻŽ āĻĒāĻžāϝāĻŧāĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ<string>
getUserSettings()
chrome.action.getUserSettings(): Promise<UserSettings>
āĻāĻāĻāĻŋ āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏā§āĻāĻŋāĻāϏ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ< āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϏā§āĻāĻŋāĻāϏ >
isEnabled()
chrome.action.isEnabled(
tabId?: number,
): Promise<boolean>
āĻā§āύ⧠āĻā§āϝāĻžāĻŦā§āϰ āĻāύā§āϝ āĻāĻā§āϏāĻā§āύāĻļāύ āĻ
ā§āϝāĻžāĻāĻļāύ āϏāĻā§āώāĻŽ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŋāύāĻž āϤāĻž āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰ⧠(āĻŦāĻž āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§ āϝāĻĻāĻŋ āĻā§āύ⧠tabId āĻĻā§āĻāϝāĻŧāĻž āύāĻž āĻĨāĻžāĻā§)āĨ¤ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ declarativeContent āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻž āĻāϰā§āĻŽ āϏāϰā§āĻŦāĻĻāĻž āĻŽāĻŋāĻĨā§āϝāĻž āĻĢā§āϰāϤ āĻĻā§āϝāĻŧāĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻā§āϝāĻžāĻŦāĻāĻāĻĄāĻŋ
āϏāĻāĻā§āϝāĻž āĻāĻā§āĻāĻŋāĻ
āĻā§āϝāĻžāĻŦā§āϰ āĻāĻāĻĄāĻŋ āϝāĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻŋ āϏāĻā§āϰāĻŋāϝāĻŧ āϏā§āĻĨāĻŋāϤāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤ⧠āĻāĻžāύ⧎
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ<āĻŦā§āϞāĻŋāϝāĻŧāĻžāύ>
openPopup()
chrome.action.openPopup(
options?: OpenPopupOptions,
): Promise<void>
āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻĒāĻĒāĻāĻĒ āĻā§āϞā§āĨ¤ Chrome 118 āĻāĻŦāĻ Chrome 126-āĻāϰ āĻŽāϧā§āϝā§, āĻāĻāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻĒāϞāĻŋāϏāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻāĻā§āϏāĻā§āύāĻļāύāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻāĻĒāϞāĻŦā§āϧ⧎
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻŦāĻŋāĻāϞā§āĻĒ
OpenPopupOptions āĻāĻā§āĻāĻŋāĻ
āĻĒāĻĒāĻāĻĒ āĻā§āϞāĻžāϰ āĻāύā§āϝ āĻŦāĻŋāĻāϞā§āĻĒāĻā§āϞāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§ā§ˇ
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ <void>
setBadgeBackgroundColor()
chrome.action.setBadgeBackgroundColor(
details: object,
): Promise<void>
āĻŦā§āϝāĻžāĻā§āϰ āĻāύā§āϝ āĻĒāĻāĻā§āĻŽāĻŋāϰ āϰāĻ āϏā§āĻ āĻāϰā§āĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ
āĻŦāϏā§āϤā§
- āϰāĻ
āϏā§āĻā§āϰāĻŋāĻ | āĻāĻžāϞāĻžāϰāĻ ā§āϝāĻžāϰā§
[0,255] āĻĒāϰāĻŋāϏāϰ⧠āĻāĻžāϰāĻāĻŋ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻžāϰ āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāϰ⧠āϝāĻž āĻŦā§āϝāĻžāĻā§āϰ RGBA āϰāĻ āϤā§āϰāĻŋ āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻ āϏā§āĻŦāĻā§āĻ āϞāĻžāϞ āĻšāϞ
[255, 0, 0, 255]āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻāĻāĻŋ CSS āĻŽāĻžāύ āϏāĻš āĻāĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻ āĻšāϤ⧠āĻĒāĻžāϰā§, āĻ āϏā§āĻŦāĻā§āĻ āϞāĻžāϞ#FF0000āĻŦāĻž#F00āĨ¤ - āĻā§āϝāĻžāĻŦāĻāĻāĻĄāĻŋ
āϏāĻāĻā§āϝāĻž āĻāĻā§āĻāĻŋāĻ
āϝāĻāύ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āϝāĻžāĻŦ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧ āϤāĻāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϏā§āĻŽāĻŋāϤ āĻāϰā§āĨ¤ āĻā§āϝāĻžāĻŦ āĻŦāύā§āϧ āĻšāϝāĻŧā§ āĻā§āϞ⧠āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϰāĻŋāϏā§āĻ āĻšāϝāĻŧāĨ¤
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ <void>
setBadgeText()
chrome.action.setBadgeText(
details: object,
): Promise<void>
āĻāϰā§āĻŽā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻžāĻ āĻĒāĻžāĻ ā§āϝ āϏā§āĻ āĻāϰā§āĨ¤ āĻŦā§āϝāĻžāĻāĻāĻŋ āĻāĻāĻāύā§āϰ āĻāĻĒāϰ⧠āĻĒā§āϰāĻĻāϰā§āĻļāĻŋāϤ āĻšāϝāĻŧāĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ
āĻŦāϏā§āϤā§
- āĻā§āϝāĻžāĻŦāĻāĻāĻĄāĻŋ
āϏāĻāĻā§āϝāĻž āĻāĻā§āĻāĻŋāĻ
āϝāĻāύ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āϝāĻžāĻŦ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧ āϤāĻāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϏā§āĻŽāĻŋāϤ āĻāϰā§āĨ¤ āĻā§āϝāĻžāĻŦ āĻŦāύā§āϧ āĻšāϝāĻŧā§ āĻā§āϞ⧠āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϰāĻŋāϏā§āĻ āĻšāϝāĻŧāĨ¤
- āĻĒāĻžāĻ ā§āϝ
āϏā§āĻā§āϰāĻŋāĻ āĻāĻā§āĻāĻŋāĻ
āϝā§āĻā§āύ āϏāĻāĻā§āϝāĻ āĻ āĻā§āώāϰ āĻĒāĻžāϏ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§, āĻāĻŋāύā§āϤ⧠āϏā§āĻĒā§āϏ⧠āĻŽāĻžāϤā§āϰ āĻāĻžāϰāĻāĻŋ āĻĢāĻŋāĻ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāϞāĻŋ āϏā§āĻā§āϰāĻŋāĻ (
'') āĻĒāĻžāϏ āĻāϰāĻž āĻšāϝāĻŧ, āĻŦā§āϝāĻžāĻ āĻĒāĻžāĻ ā§āϝāĻāĻŋ āϏāĻžāĻĢ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋtabIdāύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻž āĻĨāĻžāĻā§ āĻāĻŦāĻtextāύāĻžāϞ āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āϝāĻžāĻŦā§āϰ āĻāύā§āϝ āĻā§āĻā§āϏāĻ āϏāĻžāĻĢ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻā§āϞā§āĻŦāĻžāϞ āĻŦā§āϝāĻžāĻ āĻā§āĻā§āϏāĻā§ āĻĄāĻŋāĻĢāϞā§āĻ āĻšāϝāĻŧāĨ¤
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ <void>
setBadgeTextColor()
chrome.action.setBadgeTextColor(
details: object,
): Promise<void>
āĻŦā§āϝāĻžāĻā§āϰ āĻāύā§āϝ āĻĒāĻžāĻ ā§āϝā§āϰ āϰāĻ āϏā§āĻ āĻāϰā§āĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ
āĻŦāϏā§āϤā§
- āϰāĻ
āϏā§āĻā§āϰāĻŋāĻ | āĻāĻžāϞāĻžāϰāĻ ā§āϝāĻžāϰā§
[0,255] āĻĒāϰāĻŋāϏāϰ⧠āĻāĻžāϰāĻāĻŋ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻžāϰ āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāϰ⧠āϝāĻž āĻŦā§āϝāĻžāĻā§āϰ RGBA āϰāĻ āϤā§āϰāĻŋ āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻ āϏā§āĻŦāĻā§āĻ āϞāĻžāϞ āĻšāϞ
[255, 0, 0, 255]āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻāĻāĻŋ CSS āĻŽāĻžāύ āϏāĻš āĻāĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻ āĻšāϤ⧠āĻĒāĻžāϰā§, āĻ āϏā§āĻŦāĻā§āĻ āϞāĻžāϞ#FF0000āĻŦāĻž#F00āĨ¤ āĻāĻ āĻŽāĻžāύāĻāĻŋ āϏā§āĻ āύāĻž āĻāϰāĻžāϰ āĻĢāϞ⧠āĻāĻāĻāĻŋ āϰāĻ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻž āĻšāĻŦā§ āϝāĻž āĻŦā§āϝāĻžāĻā§āϰ āĻĒāĻāĻā§āĻŽāĻŋāϰ āϰāĻā§āϰ āϏāĻžāĻĨā§ āĻŦā§āĻĒāϰā§āϤā§āϝ āĻšāĻŦā§ āϝāĻžāϤ⧠āĻĒāĻžāĻ ā§āϝāĻāĻŋ āĻĻā§āĻļā§āϝāĻŽāĻžāύ āĻšāĻŦā§āĨ¤ 0 āĻāϰ āϏāĻŽāϤā§āϞā§āϝ āĻāϞāĻĢāĻž āĻŽāĻžāύ āϏāĻš āϰāĻāĻā§āϞāĻŋ āϏā§āĻ āĻāϰāĻž āĻšāĻŦā§ āύāĻž āĻāĻŦāĻ āĻāĻāĻāĻŋ āϤā§āϰā§āĻāĻŋ āĻĢāĻŋāϰāĻŋāϝāĻŧā§ āĻĻā§āĻŦā§āĨ¤ - āĻā§āϝāĻžāĻŦāĻāĻāĻĄāĻŋ
āϏāĻāĻā§āϝāĻž āĻāĻā§āĻāĻŋāĻ
āϝāĻāύ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āϝāĻžāĻŦ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧ āϤāĻāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϏā§āĻŽāĻŋāϤ āĻāϰā§āĨ¤ āĻā§āϝāĻžāĻŦ āĻŦāύā§āϧ āĻšāϝāĻŧā§ āĻā§āϞ⧠āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϰāĻŋāϏā§āĻ āĻšāϝāĻŧāĨ¤
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ <void>
setIcon()
chrome.action.setIcon(
details: object,
): Promise<void>
āĻāϰā§āĻŽā§āϰ āĻāύā§āϝ āĻāĻāĻāύ āϏā§āĻ āĻāϰā§āĨ¤ āĻāĻāĻāύāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻāĻŽā§āĻ āĻĢāĻžāĻāϞā§āϰ āĻĒāĻžāĻĨ āĻšāĻŋāϏāĻžāĻŦā§ āĻŦāĻž āĻāĻāĻāĻŋ āĻā§āϝāĻžāύāĻāĻžāϏ āĻāĻĒāĻžāĻĻāĻžāύ āĻĨā§āĻā§ āĻĒāĻŋāĻā§āϏā§āϞ āĻĄā§āĻāĻž āĻšāĻŋāϏāĻžāĻŦā§ āĻŦāĻž āϝā§āĻā§āύ āĻāĻāĻāĻŋāϰ āĻ āĻāĻŋāϧāĻžāύ āĻšāĻŋāϏāĻžāĻŦā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻšāϝāĻŧ āĻĒāĻĨ āĻŦāĻž imageData āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻž āĻāĻŦāĻļā§āϝāĻāĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ
āĻŦāϏā§āϤā§
- imageData
āĻāĻŽā§āĻāĻĄā§āĻāĻž | āĻŦāϏā§āϤ⧠āĻāĻā§āĻāĻŋāĻ
āĻšāϝāĻŧ āĻāĻāĻāĻŋ ImageData āĻ āĻŦāĻā§āĻā§āĻ āĻŦāĻž āĻāĻāĻāĻŋ āĻ āĻāĻŋāϧāĻžāύ {size -> ImageData} āĻĒā§āϰāϤāĻŋāύāĻŋāϧāĻŋāϤā§āĻŦāĻāĻžāϰ⧠āĻāĻāĻāύ āϏā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§ā§ˇ āϝāĻĻāĻŋ āĻāĻāĻāύāĻāĻŋ āĻāĻāĻāĻŋ āĻ āĻāĻŋāϧāĻžāύ āĻšāĻŋāϏāĻžāĻŦā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻž āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻĒāϰā§āĻĻāĻžāϰ āĻĒāĻŋāĻā§āϏā§āϞ āĻāύāϤā§āĻŦā§āϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āĻĒā§āϰāĻā§āϤ āĻāĻŋāϤā§āϰāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāĻŦā§āĨ¤ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āϏā§āĻā§āϰā§āύ āϏā§āĻĒā§āϏ āĻāĻāύāĻŋāĻā§ āĻĢāĻŋāĻ āĻāϰāĻž āĻāĻŦāĻŋāϰ āĻĒāĻŋāĻā§āϏā§āϞā§āϰ āϏāĻāĻā§āϝāĻž
scaleāϏāĻŽāĻžāύ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āϏāĻžāĻāĻscale* n āϏāĻš āĻāĻŦāĻŋ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻž āĻšāĻŦā§, āϝā§āĻāĻžāύ⧠UI āĻāĻāĻāύā§āϰ āĻāĻāĻžāϰ nāĨ¤ āĻ āύā§āϤāϤ āĻāĻāĻāĻŋ āĻāĻŦāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻž āĻāĻŦāĻļā§āϝāĻāĨ¤ āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āϝ⧠'details.imageData = foo' 'details.imageData = {'16': foo}' āĻāϰ āϏāĻŽāϤā§āϞā§āϝāĨ¤ - āĻĒāĻĨ
āϏā§āĻā§āϰāĻŋāĻ | āĻŦāϏā§āϤ⧠āĻāĻā§āĻāĻŋāĻ
āĻšāϝāĻŧ āĻāĻāĻāĻŋ āĻāĻĒā§āĻā§āώāĻŋāĻ āĻāĻŽā§āĻ āĻĒāĻžāĻĨ āĻŦāĻž āĻāĻāĻāĻŋ āĻ āĻāĻŋāϧāĻžāύ {size -> āĻāĻĒā§āĻā§āώāĻŋāĻ āĻāĻŽā§āĻ āĻĒāĻžāĻĨ} āĻāĻāĻāύ āϏā§āĻ āĻāϰāϤ⧠āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰā§ā§ˇ āϝāĻĻāĻŋ āĻāĻāĻāύāĻāĻŋ āĻāĻāĻāĻŋ āĻ āĻāĻŋāϧāĻžāύ āĻšāĻŋāϏāĻžāĻŦā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻž āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻĒāϰā§āĻĻāĻžāϰ āĻĒāĻŋāĻā§āϏā§āϞ āĻāύāϤā§āĻŦā§āϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āĻĒā§āϰāĻā§āϤ āĻāĻŋāϤā§āϰāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāĻŦā§āĨ¤ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āϏā§āĻā§āϰā§āύ āϏā§āĻĒā§āϏ āĻāĻāύāĻŋāĻā§ āĻĢāĻŋāĻ āĻāϰāĻž āĻāĻŦāĻŋāϰ āĻĒāĻŋāĻā§āϏā§āϞā§āϰ āϏāĻāĻā§āϝāĻž
scaleāϏāĻŽāĻžāύ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āϏāĻžāĻāĻscale* n āϏāĻš āĻāĻŦāĻŋ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻž āĻšāĻŦā§, āϝā§āĻāĻžāύ⧠UI āĻāĻāĻāύā§āϰ āĻāĻāĻžāϰ nāĨ¤ āĻ āύā§āϤāϤ āĻāĻāĻāĻŋ āĻāĻŦāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻž āĻāĻŦāĻļā§āϝāĻāĨ¤ āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āϝ⧠'details.path = foo' 'details.path = {'16': foo}' āĻāϰ āϏāĻŽāϤā§āϞā§āϝ - āĻā§āϝāĻžāĻŦāĻāĻāĻĄāĻŋ
āϏāĻāĻā§āϝāĻž āĻāĻā§āĻāĻŋāĻ
āϝāĻāύ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āϝāĻžāĻŦ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧ āϤāĻāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϏā§āĻŽāĻŋāϤ āĻāϰā§āĨ¤ āĻā§āϝāĻžāĻŦ āĻŦāύā§āϧ āĻšāϝāĻŧā§ āĻā§āϞ⧠āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϰāĻŋāϏā§āĻ āĻšāϝāĻŧāĨ¤
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ <void>
Chrome 96+
setPopup()
chrome.action.setPopup(
details: object,
): Promise<void>
āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϝāĻāύ āĻ ā§āϝāĻžāĻāĻļāύā§āϰ āĻāĻāĻāύ⧠āĻā§āϞāĻŋāĻ āĻāϰ⧠āϤāĻāύ HTML āĻĄāĻā§āĻŽā§āύā§āĻāĻā§ āĻĒāĻĒāĻāĻĒ āĻšāĻŋāϏā§āĻŦā§ āĻā§āϞāĻžāϰ āĻāύā§āϝ āϏā§āĻ āĻāϰā§āĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ
āĻŦāϏā§āϤā§
- āĻĒāĻĒāĻāĻĒ
āϏā§āĻā§āϰāĻŋāĻ
āĻāĻāĻāĻŋ āĻĒāĻĒāĻāĻĒā§ āĻĻā§āĻāĻžāύā§āϰ āĻāύā§āϝ HTML āĻĢāĻžāĻāϞā§āϰ āĻāĻĒā§āĻā§āώāĻŋāĻ āĻĒāĻĨāĨ¤ āϝāĻĻāĻŋ āĻāĻžāϞāĻŋ āϏā§āĻā§āϰāĻŋāĻ (
'') āϤ⧠āϏā§āĻ āĻāϰāĻž āĻšāϝāĻŧ āϤāĻŦā§ āĻā§āύ⧠āĻĒāĻĒāĻāĻĒ āĻĻā§āĻāĻžāύ⧠āĻšāϝāĻŧ āύāĻžāĨ¤ - āĻā§āϝāĻžāĻŦāĻāĻāĻĄāĻŋ
āϏāĻāĻā§āϝāĻž āĻāĻā§āĻāĻŋāĻ
āϝāĻāύ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āϝāĻžāĻŦ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧ āϤāĻāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϏā§āĻŽāĻŋāϤ āĻāϰā§āĨ¤ āĻā§āϝāĻžāĻŦ āĻŦāύā§āϧ āĻšāϝāĻŧā§ āĻā§āϞ⧠āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϰāĻŋāϏā§āĻ āĻšāϝāĻŧāĨ¤
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ <void>
setTitle()
chrome.action.setTitle(
details: object,
): Promise<void>
āĻāϰā§āĻŽā§āϰ āĻļāĻŋāϰā§āύāĻžāĻŽ āϏā§āĻ āĻāϰā§āĨ¤ āĻāĻāĻŋ āĻā§āϞāĻāĻŋāĻĒā§ āĻĻā§āĻāĻžāϝāĻŧāĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ
āĻŦāϏā§āϤā§
- āĻā§āϝāĻžāĻŦāĻāĻāĻĄāĻŋ
āϏāĻāĻā§āϝāĻž āĻāĻā§āĻāĻŋāĻ
āϝāĻāύ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āϝāĻžāĻŦ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧ āϤāĻāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϏā§āĻŽāĻŋāϤ āĻāϰā§āĨ¤ āĻā§āϝāĻžāĻŦ āĻŦāύā§āϧ āĻšāϝāĻŧā§ āĻā§āϞ⧠āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϰāĻŋāϏā§āĻ āĻšāϝāĻŧāĨ¤
- āĻļāĻŋāϰā§āύāĻžāĻŽ
āϏā§āĻā§āϰāĻŋāĻ
āϏā§āĻā§āϰāĻŋāĻāĻāĻŋ āĻŽāĻžāĻāϏ āĻāĻāĻžāϰ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ ā§āϝāĻžāĻāĻļāύāĻāĻŋ āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāĻž āĻāĻāĻŋāϤāĨ¤
āϰāĻŋāĻāĻžāϰā§āύāϏ
āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ <void>
āĻāĻāύāĻž
onClicked
chrome.action.onClicked.addListener(
callback: function,
)
āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāĻāĻļāύ āĻāĻāĻāύ āĻā§āϞāĻŋāĻ āĻāϰāĻž āĻšāϞ⧠āĻŦāĻšāĻŋāϏā§āĻāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻ ā§āϝāĻžāĻāĻļāύ⧠āĻĒāĻĒāĻāĻĒ āĻĨāĻžāĻāϞ⧠āĻāĻ āĻāĻā§āύā§āĻāĻāĻŋ āĻāĻžāϞ⧠āĻšāĻŦā§ āύāĻžāĨ¤
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻāϞāĻŦā§āϝāĻžāĻ
āĻĢāĻžāĻāĻļāύ
callbackāĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻāĻŋ āĻāϰ āĻŽāϤ⧠āĻĻā§āĻāĻžāĻā§āĻā§:(tab: tabs.Tab) => void
- āĻā§āϝāĻžāĻŦ
onUserSettingsChanged
chrome.action.onUserSettingsChanged.addListener(
callback: function,
)
āĻāĻāĻāĻŋ āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻā§āϰāĻŋāϝāĻŧāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āϏāĻžāĻĨā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏā§āĻāĻŋāĻāϏ āϝāĻāύ āĻŦāϰāĻāĻžāϏā§āϤ āĻšāϝāĻŧ⧎
āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ
- āĻāϞāĻŦā§āϝāĻžāĻ
āĻĢāĻžāĻāĻļāύ
callbackāĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻāĻŋ āĻāϰ āĻŽāϤ⧠āĻĻā§āĻāĻžāĻā§āĻā§:(change: UserSettingsChange) => void
- āĻĒāϰāĻŋāĻŦāϰā§āϤāύ