如何在一个回调函数动画chrome扩展图标
How to animate chrome extension icon in a callback function?
这是我之前关于使用XMLHttpRequest()
发布到我的书签应用程序的问题的后续。当我收到status 200 OK
时,我想以某种方式在扩展图标中更改请求成功。我创建了另一个图标success_icon.png
与反向颜色,我试图使新图标取代原来的图标,并逐渐变成原来的图标。我知道这将在我的回调函数内,但我不明白如何?这是我的background.html
。谢谢!
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.getSelected(null, function(tab) {
tabId = tab.id;
tabUrl = tab.url
tabTitle = tab.title
var formData = new FormData();
formData.append("url", tabUrl);
formData.append("title", tabTitle);
formData.append("pitch", "this is a note");
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://ting-1.appspot.com/submithandlertest", true);
xhr.onreadystatechange = function (aEvt) {
if (xhr.readyState == 4) {
if (xhr.status == 200)
console.log("request 200-OK")
else
console.log("Error", xhr.statusText);
}
};
xhr.send(formData);
代码改编自eduardocereto的回答,但setTimeout
不能正常工作:
if (xhr.readyState == 4 && xhr.status == 200) {
console.log("request 200-OK");
//chrome.browserAction.setIcon({path: '/success_icon.png'});
chrome.browserAction.setBadgeText ( { text: "done" } );
function resetBadge() {
setTimeout (chrome.browserAction.setBadgeText( { text: "" } ), 10000);
}
resetBadge()
}
要动态更改图标,可以调用:
chrome.browserAction.setIcon({path: '/path/img/success_icon.png'})
创建渐隐效果不是那么容易,但是你可以使用<canvas>
元素代替静态图像来设置图标。然后你可以用你想要的方式动画画布。
查看这篇关于如何将图像加载到画布并更改其不透明度的文章:
如何改变不透明度(alpha,透明度)的一个元素在画布元素已绘制后?
API参考:http://code.google.com/chrome/extensions/browserAction.html method-setIcon
使用setBadgeText
和setTimeout
,你应该这样做:
chrome.browserAction.setBadgeText ( { text: "done" } );
setTimeout(function () {
chrome.browserAction.setBadgeText( { text: "" } );
}, 1000);
我来到这里寻找一种方法来吸引一些注意到我的浏览器操作扩展…
这里有一些方便的代码来显示徽章:
function flashBadge(message, times, interval) {
flash();
function flash() {
setTimeout(function () {
if (times == 0) {
chrome.browserAction.setBadgeText({text: message});
return;
}
if (times % 2 == 0) {
chrome.browserAction.setBadgeText({text: message});
} else {
chrome.browserAction.setBadgeText({text: ""});
}
times--;
flash();
}, interval);
}
}
相关文章:
- 如何将一个JavaScript函数回调为多个函数
- Meteor:异步函数回调异常:onAfterAction
- 从类方法中的 ajax post 函数回调函数更改 javascript 类属性
- jQuery动画函数回调错误
- jquery在html属性中添加函数回调,以便在其他事件中调用
- jquery getjson 函数:回调返回错误的字符串
- postMessage - 多个 postMessage 事件/函数/回调
- 在 Promise 调用的错误函数回调后附加对象的用法是什么
- 单击事件后的 JavaScript 函数回调
- 设置超时函数回调静态变量
- Jquery UI 模式匿名函数回调以打开对话框
- 函数回调、局部变量和 chrome.storage.sync.get
- Jquery Ajax 没有拾取选项参数中指定的函数回调
- 如何在 javascript 中进行函数回调
- 用函数回调封装JavaScript
- jQuery JavaScript嵌套异步函数回调
- Node.js-匿名函数回调
- 函数回调超出范围
- php代码的Javascript函数回调
- 如何使用函数回调在更改时提交表单