这是使用显示文本在我的扩展图标background.js是否有可能在page扩展的chrome扩展中设置BadgeText?
chrome.pageAction.setBadgeText IM({“文”:“3”})
但它显示错误对象#没有方法setBadgeText。
这是使用显示文本在我的扩展图标background.js是否有可能在page扩展的chrome扩展中设置BadgeText?
chrome.pageAction.setBadgeText IM({“文”:“3”})
但它显示错误对象#没有方法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);
}
在这里你可以改变你想显示的文本的位置和颜色。
我试图使用你的代码,但它说“Uncaught TypeError:不能调用方法getContext'为null”。也许我必须在使用这段代码之前做一些事情? F.E.创建画布元素? – 2014-01-09 12:27:06
只为未来的读者,解决方案失踪的画布问题在这里:http://stackoverflow.com/questions/21020531/chrome-setbadgetext-on-pageaction – 2014-12-16 01:08:29
有传言说,你可以使用chrome.browserAction.setBadgeText
在页面动作上设置一个徽章。由于您只能在扩展程序中使用页面操作或浏览器操作,因此如果您选择前者,则此方法将作用于页面操作,即使它是browserAction
API的一部分。
想要听到任何人谁实际证实了这种谣言。在我的机器中,在使用pageAction的情况下,没有chrome.browserAction.setBadgeText这样的方法,显然这个问题也是出于这个原因。 – 2014-12-16 00:56:17
不,这是不可能的页面动作
但它有可能与浏览器操作。
摘录:
Parts of the UI Like browser actions, page actions can have an icon, a tooltip, and popup; they can't have badges, however. In addition, page actions can be grayed out. You can find information about icons, tooltips, and popups by reading about the browser action UI.
你可以做的是另一种具有包含在图像中的徽章,以取代当前图像。
页面操作不支持徽章文本。您是否考虑过使用[浏览器操作](http://developer.chrome.com/extensions/browserAction.html)? – BeardFist 2013-04-10 06:03:12
是的,你是对的Page Page Actions不支持徽章文本。我用画布获得了类似的效果。 – vishu 2013-04-10 09:15:35