【发布时间】:2011-12-05 13:05:51
【问题描述】:
这是对my previous question 的后续跟进,内容涉及使用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's answer 的代码但 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()
}
【问题讨论】:
-
好改变图标很容易,但“淡入” - 没那么多。你知道如何用纯 javascript 来做吗?
-
@serg:好的,你能给我一些关于如何改变图标的线索吗,说几秒钟,然后回到原来的图标。因为我还不明白我怎么能做到这一点。之后我会尝试褪色。谢谢!
-
请注意,示例中 setTimeout 内的代码不会延迟。它立即执行,并且在超时后执行该执行的返回
-
有没有办法用 GIF 做到这一点?
标签: javascript jquery google-chrome-extension xmlhttprequest