ローカルファイル(file:///
からロードされた何かが)追加の権限を要求することが許可されている:あなたは好みのAPIを呼び出す前に、また、あなたのJSコードに次の行を追加します。通常、あなたがアクセスを許可するかどうかを確認するプロンプトになるだろう - あなたはFirefoxのプロファイルにprefs.js
に次の行を追加することで、プロンプトを「自動受け入れる」ことができます。
user_pref("capability.principal.codebase.p0.granted", "UniversalXPConnect");
user_pref("capability.principal.codebase.p0.id", "file://");
user_pref("capability.principal.codebase.p0.subjectName", "");
あなたのページは、その後行うことができます。
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var branch = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch);
branch.setBoolPref("javascript.enabled", false);
あなたのページがローカルファイルの場合は、これは間違いなく機能します。しかし、エラーメッセージで判断すると、現在コードはabout:blank
です。 かもしれないcapability.principal.codebase.p0.id
をabout:blank
またはmoz-safe-about:blank
に変更すると、そのページも拡張権限を得ることができますが、わかりません。
しかし、JavaScriptが既に無効になっていて、有効にする必要がある場合は、これは本当に役に立ちません。これは、エクステンションを作成してテストプロファイルに追加することによってのみ解決できます。 Firefox拡張機能のJavaScriptは、この設定に関係なく機能します。
「エラー:XPCComponents.classesプロパティを取得するために、の許可が拒否されました」と表示されます。 –
artemave