我正在尝试制作一个Chrome扩展程序,用XHR解析网站上的json页面,以便每当页面上的数字发生变化时我都可以制作徽章。我以为我拥有它,但当我将它添加到chrome时,会出现图标,但它不会做任何事情......有什么问题?
background.js :(已编辑)
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.create({'url': "http://www.bukkit.org/account/alerts"}, function(tab) {
});
});
var xhr = new XMLHttpRequest();
xhr.open( 'GET', 'http://www.bukkit.org/.json', true );
xhr.onload = function () {
var unread = window.JSON.parse( xhr.responseText )._visitor_alertsUnread;
};
xhr.onerror = function () {
};
xhr.send();
if (unread>0){
chrome.browserAction.setBadgeText({text: unread});
chrome.browserAction.setBadgeBackgroundColor({color: "#FF0000"})
}
和我的manifest.json:
{
"browser_action": {
"default_icon": "icon.png"
},
"description": "Get Bukkit Alerts",
"icons": {
"128": "128.png",
"16": "16.png",
"48": "48.png"
},
"name": "BukkitAlert",
"permissions": [
"tabs",
"http://www.bukkit.org/*"
],
"background": {
"scripts": ["background.js"]
}, "version": "1.0"
}
谢谢! 编辑:现在单击图标打开一个新选项卡,但它表示变量“未读”未定义。
答案 0 :(得分:1)
颜色必须是一个字符串。
你写的。
chrome.browserAction.setBadgeBackgroundColor({color: #FF0000})
应该是
chrome.browserAction.setBadgeBackgroundColor({color: "#FF0000"})
<强>更新强>
运行此代码表明来自网址的JSON格式存在错误。
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://www.bukkit.org/.json', true);
xhr.onload = function () {
var unread = window.JSON.parse(xhr.responseText)._visitor_alertsUnread;
console.log( unread );
};
xhr.onerror = function () {
console.log( "An error occurred" );
console.dir(arguments);
};
xhr.send();
始终定义onerror
功能,以便您可以通过服务器通知某人错误。