0

Firefox で検証されたアドオンdaneshLinkを開発しました。ユーザーはこのアドオンをインストールして使用しました。このアドオンは機能しましたが、Firefox がバージョン 50.0 に更新されると、このアドオンは機能しなくなりました。

(注: Firefox の更新後、アドオンは削除または無効化されていません。まったく機能しません)。

var x = content.document.getElementsByTagName('html')[0].innerHTML;
var test = x.match(/>article Id:[0-9a-zA-z]/img);
var url = "> <a href=\"http://mysite.ir/index.jsp?articleID=";
for (var i = 0; i < test.length; i++) {
    x = x.replace(test[i], url +">Download :" + test[i] + "</a>");
}
 content.document.getElementsByTagName('html')[0].innerHTML = x;
4

1 に答える 1

1

あなたが提供したコードは、問題が何であるかを知るには不十分ですが、推測できます. マルチプロセス Firefox への移行で問題が発生する可能性が最も高いです。これがオーバーレイ アドオンであり、 を使用しているという事実は、content.document(ワーカーを使用して) Web ページの DOM へのアクセスをメイン スクリプトから分離していない可能性があります。

可能であれば、これをWebExtensionとして書き直すのがおそらく最善の方法です。または、アドオン SDKベースの拡張機能として作成することもできます。本当にオーバーレイ アドオンにする必要がある場合は、メイン スクリプト機能と DOM へのアクセスを分離することができます。ただし、他の種類のアドオンの場合ほど便利ではありません。

次のように指定することで、現在のコードの互換性をある程度長く保つことができる場合があります。

<em:multiprocessCompatible>false/em:multiprocessCompatible>

あなたのinstall.rdfで。そうすることで、拡張機能のインストール時に Firefox がマルチプロセス モードを有効にできないようにするか、少なくとも、アドオンが機能するのに十分な互換性シムを使用する必要があります。

私はあなたが読むことをお勧めします:

于 2016-11-21T11:29:24.553 に答える