可以在chrome扩展名的pageAction上设置setBadgeText吗?

时间:2013-04-10 05:51:51

标签: google-chrome-extension

这是我用来在background.js

中显示我的扩展图标上的文字

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

但它显示错误Object#没有方法setBadgeText。

3 个答案:

答案 0 :(得分: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);
}

在这里,您可以查看要显示的文本的位置和颜色。

答案 1 :(得分:1)

不,页面操作无法实现

但是可以使用浏览器操作。

<强>摘录:

page action docs

  

UI的部分与浏览器操作类似,页面操作可以有一个图标,a   工具提示和弹出窗口; 他们不能拥有徽章,但是。另外,页面   动作可以变灰。你可以找到有关图标的信息,   通过阅读有关浏览器操作UI的工具提示和弹出窗口。

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

答案 2 :(得分:0)

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