AddOn SDK を使用して Mozilla AddOn を構築しています。AJAX の投稿を作成する必要があるため、XMLHttpRequest
. Mozilla のドキュメントには、次のように書かれています。XMLHttpRequest
XMLHttpRequest() コンストラクターを使用してインスタンス化することはできません。コンストラクターはコンポーネント内で定義されておらず、コードはエラーになります。これを回避する最善の方法は、XPCOM コンポーネント コンストラクタを使用することです。
ドキュメントは、このようにするように言います:
const XMLHttpRequest = Components.Constructor["@mozilla.org/xmlextras/xmlhttprequest;1"];
var oReq = new XMLHttpRequest();
罰金。したがって、ドキュメントに示されているとおりにコードを実装します。
var { Cc, Cu, Ci, Cr, Cm, components } = require('chrome');
const XMLHttpRequest = components.Constructor["@mozilla.org/xmlextras/xmlhttprequest;1"];
. . .
var oReq = new XMLHttpRequest();
そして、この行に「XMLHttpRequest はコンストラクターではありません」というエラーが表示されます。
私は何が欠けていますか?ここで何が間違っていますか?ファイルをComponents.Constructor["@...
生成する AddOn SDK CLI ツールが、.xpi
「コンポーネント」を使用してクロム権限にアクセスします。そのためには、次のような行を追加する必要があります。
const {components} = require("chrome");
次に、「chrome」モジュールからインポートしたプロパティへのショートカットを使用できます (「classes」、「interfaces」、「 manager'、'results'、および 'utils' プロパティ、および
components
オブジェクトComponents
自体)。
いいよ。require(chrome)
ファイルの先頭に呼び出しがあり、ショートカットを生成してから amous を生成します。components
これは正しい形式であり、アドオン コンパイラからのメッセージで使用するように指示されています。それでもエラーが発生します。
どんな助けでも大歓迎です。