Chrome扩展失败......什么错了?

时间:2012-07-12 18:21:01

标签: javascript json google-chrome-extension

我正在尝试制作一个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"
}

谢谢! 编辑:现在单击图标打开一个新选项卡,但它表示变量“未读”未定义。

1 个答案:

答案 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功能,以便您可以通过服务器通知某人错误。