我在Google Chrome扩展程序中排除了这个AJAX请求;它在chrome控制台中记录错误:
Uncaught Error: Invalid value for argument 1. Expected 'object' but got 'string'. - extensions/extension_process_bindings.js:66 chromeHidden.validate - extensions/extension_process_bindings.js:66 (anonymous function) - extensions/extension_process_bindings.js:622 xmlhttp.onreadystatechange - popup.html:362
虽然我的代码中只有其中一个错误,但我认为这是本节(标记的行已标记)
var xmlhttp;
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
if (xmlhttp.responseText != 0)
{
chrome.browserAction.setBadgeText(xmlhttp.responseText); // LINE 362 - FINAL ERROR
chrome.browserAction.setBadgeBackgroundColor(255,0,0,255);
document.getElementById("alerts").innerHTML = xmlhttp.responseText;
}
}
}
xmlhttp.open("GET","http://adams-site.x10.mx/checkalerts.php?
day="+dayname,true);
xmlhttp.send();
}
答案 0 :(得分:4)
根据sample from the Chrome extension site(and the API),您需要传递一个对象(错误建议)而不是传递文本。
来自样本:
chrome.browserAction.setBadgeText({text:String(i)});
你很可能只需要:
chrome.browserAction.setBadgeText({text: xmlhttp.responseText });
答案 1 :(得分:2)
调用setBadgeText函数(http://code.google.com/chrome/extensions/browserAction.html)
的错误方法chrome.browserAction.setBadgeText({text: xmlhttp.responseText});
应该有效。同样适用于setBadgeBackgroundColor btw。
答案 2 :(得分:2)
chrome.browserAction.setBadgeText
需要Object
而非String
(如错误消息所示)。这是documentation的链接。尝试将代码更改为:
chrome.browserAction.setBadgeText({
text: xmlhttp.responseText
});