5

我正在尝试使用以下代码为我的 chrome 扩展设置徽章文本:

chrome.pageAction.setBadgeText({"text":'3'})

这会引发错误Object #<Object> has no method setBadgeText

4

3 回答 3

6

我使用了画布功能来获得相同的结果。这是我使用的代码。

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

在这里您可以更改要显示的文本的位置和颜色。

于 2013-04-10T09:34:39.920 回答
1

不,页面操作是不可能的

但是浏览器操作是可能的。

摘抄:

页面操作文档

UI 的组成部分 与浏览器操作一样,页面操作可以有图标、工具提示和弹出窗口;然而,他们不能有徽章。此外,页面操作可以灰显。您可以通过阅读浏览器操作 UI 找到有关图标、工具提示和弹出窗口的信息。

您可以做的是将当前图像替换为图像中包含徽章的另一个图像。

于 2018-02-09T11:21:42.517 回答
0

有传言说您可以用来chrome.browserAction.setBadgeText在页面操作上设置徽章。由于您的扩展程序中只能包含页面操作或浏览器操作,因此如果您选择前者,则此方法会作用于页面操作,即使它是browserActionAPI 的一部分。

于 2013-04-18T08:36:31.830 回答