這是使用顯示文本在我的擴展圖標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