0

MozillaValidatorが私に報告しました:

E4X非推奨/削除

エラー:異なるクロームウィンドウやJSモジュールを含むほとんどのコンテキスト間でE4Xオブジェクトを渡すことはできなくなりました。E4Xは、Gecko 20(またはそれ以前)によって完全に削除されます。詳細については 、 https://developer.mozilla.org/en-US/docs/E4Xを参照してください。

現在、エラーは次の行にあります。

Components.utils.import("resource://gre/modules/Services.jsm");
const XUL = Namespace("xul", "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

Mozilla Validatorは、これを解決策として提案するページを指しています。

警告:E4Xは廃止されました。Firefox 17ではWebページ(コンテンツ)に対してデフォルトで無効になっており、Firefox 20ではクロムに対してデフォルトで無効になっています。Firefox21では削除されます。代わりに、DOMParser/DOMSerializerまたは非ネイティブJXONアルゴリズムを使用してください。

var response = xmlhttprequest.responseText; // bug 270553
response = response.replace(/^<\?xml\s+version\s*=\s*(["'])[^\1]+\1[^?]*\?>/, ""); // bug 336551
var e4x = new XML(response);

私はここで私のリーグから少し外れていて、何をすべきかわかりません。手がかりをいただければ幸いです。これはどのように使用しますか?

4

1 に答える 1

0

あ、コード列の2行目でした。

問題はここにありました (AMO 編集者の 1 人が私に提案しました):

const XUL = Namespace("xul", "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

定数の定義は、E4X オブジェクトにアクセスするものでした。私は自分のコードでその定数を使用したことはありません。元のアドオンの例でそれを見て、それをコピーしただけなので、そこにありました。

削除した後、バリデーターは文句を言わなくなりました。更新されたアドオンを送信したところ、合格し、正式に承認されました。

于 2013-02-14T22:35:39.693 に答える