さまざまなソーシャルメトリックの共有カウントを含むオブジェクトがあります。オブジェクトは次のようになります。
Object{
delicious: 0,
facebook: {
comments: 0,
likes: 0,
shares: 0,
total: 0,
},
linkedIn: 1,
pinterest: 0,
twitter: 9
}
オブジェクトへのアクセスを試みるために使用しているテストコードは次のとおりです。
console.log(bg.results);
console.log(bg.results["facebook"]);
console.log(bg.results.facebook);
Object.keys(bg.results).forEach(function(key){
console.log(bg.results);
console.log(key + "->" + bg.results[key]);
});
上記のオブジェクトはコンソールに表示されているものであるため、bg.resultsのフィールドにデータが含まれていることがわかります。問題は、ドット構文またはobject ["key"]を使用してこれらのフィールドのいずれかにアクセスしようとすると、結果として空の文字列が返されることです。私は検索しましたが、同じ問題を経験している人を見つけることができませんでした。なぜこれが起こっているのか誰かが何か考えを持っていますか?
いくつかの追加情報:私のコードはChrome拡張機能のコンテキスト内で実行されています。ポップアップページからこのオブジェクトにアクセスしており、オブジェクトのデータはバックグラウンドページから提供されています。
ご協力いただきありがとうございます。
アップデート
Chromeが私のコードを処理する方法で何か面白いことが起こっています。bg.resultsのデータは、私のバックグラウンドページにあるupdateという関数によって提供されます。私のプログラムでは、ユーザーの設定に応じて更新を呼び出す方法が2つあります。バックグラウンドページのコンテキスト内からupdate()を呼び出すと、すべてが正常に機能し、期待どおりに動作します。ポップアップページからupdate()を呼び出すと、フィールドにアクセスしようとすると空の文字列が表示されます。
これは、Chrome拡張機能の処理方法に非常に特有のバグのように思われるため、この種の専門家からの入力は素晴らしいものになります。みんな助けてくれてありがとう!