1

XHRを使用してWebサイトの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"
}

ありがとうございました!
編集:アイコンをクリックして新しいタブを開くことはできますが、変数「未読」が未定義であると表示されます。

4

1 に答える 1

1

色は文字列でなければなりません。

あなたが書いた。

chrome.browserAction.setBadgeBackgroundColor({color: #FF0000})

する必要があります

chrome.browserAction.setBadgeBackgroundColor({color: "#FF0000"})

アップデート

このコードを実行すると、URL の 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サーバーのエラーを誰かに通知できるように、常に関数を定義します。

于 2012-07-12T18:29:09.153 に答える