4

アドオン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の「ウェブで同一または類似の文を実行した場合コンソールは、」それは正常に動作:

for (var property in window) { console.log(property); }; 

答えて

1

私はテストボタンを経由して、それをインストールしてからhttp://example.org/を訪問してa testcase extensionでこれを再現することができませんでした - コンソールに印刷されたいくつかのプロパティには、メッセージに続いて、あった 『』済、エラーなしs。

テストケースコード:

exports.main = function(options, callbacks) { 
    var pageMod = require("page-mod"); 
    pageMod.PageMod({ 
     include: "*.org", 
     contentScript: 'for (property in window) {console.log(property)}; console.log("done");' 
    }); 
};