Addon SDK (Jetpack) を使用して、Google Chrome 拡張機能を Firefox に変換しようとしています。次のコード (コンテンツ スクリプトとして実行)
var property, winProperties = {};
for (property in window) {
winProperties[property] = true;
}
Firefox 5.0 および 6.0 で実行すると、次の例外がスローされます。
Traceback (most recent call last):
File "sfc-bgcore.js", line 299, in null
File "resource://jid1-q4cqhvcl3sc4vq-at-jetpack-api-utils-lib/content/content-proxy.js", line 519, in null
for each (name in Object.keys(obj)) {
[Exception... "Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame ::
resource://jid1-q4cqhvcl3sc4vq-at-jetpack-api-utils-lib/securable-module.js ->
resource://jid1-q4cqhvcl3sc4vq-at-jetpack-api-utils-lib/content/content-proxy.js ::
<TOP_LEVEL> ::
line 519" data: no]
この例外をキャッチする方法、または「問題のある」プロパティを回避してループを続行する方法を知っている人はいますか?
これでもエラーが発生するため、ループの本体に try-catch ステートメントを入れることはできないことに注意してください。
for (var property in window) {};
ただし、Firefox の「Web コンソール」で同じまたは類似のステートメントを実行すると、正常に動作します。
for (var property in window) { console.log(property); };