这是我用于在background.js中显示我的扩展图标上的文本
chrome.pageAction.setBadgeText({ “文本”: '3'})
但它显示错误Object#没有方法setBadgeText。
我使用了画布功能来获得相同的结果。这是我使用的代码。
window.setInterval(function() {
chrome.pageAction.setIcon({imageData: draw(10, 0), tabId: tabId});
}, 1000);
function draw(starty, startx) {
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var img = new Image();
img.src = "icon_16.png"
img.onload = function () {
context.drawImage(img,0,2);
}
//context.clearRect(0, 0, canvas.width, canvas.height);
context.fillStyle = "rgba(255,0,0,1)";
context.fillRect(startx % 19, starty % 19, 10, 10);
context.fillStyle = "white";
context.font = "11px Arial";
context.fillText("3",0,19);
return context.getImageData(0, 0, 19, 19);
}
在这里,您可以更改要显示的文本的位置和颜色。
不,页面操作无法实现
但是有可能通过浏览器操作。
摘抄:
UI的一部分与浏览器操作类似,页面操作可以有图标,工具提示和弹出窗口;然而,他们不能拥有徽章。此外,页面操作可以显示为灰色。您可以通过阅读浏览器操作UI找到有关图标,工具提示和弹出窗口的信息。
您可以做的是将当前图像替换为图像中包含徽章的图像。
有传言说你可以使用chrome.browserAction.setBadgeText
在页面动作上设置徽章。由于您的扩展程序中只能有页面操作或浏览器操作,因此如果您选择前者,此方法会对页面操作起作用,即使它是browserAction
API的一部分。