正規表現を使用してページを検索できる FindBar アドオンを見つけました。しかし、それはフォックス2と3でのみうまく機能します。少なくともフォックス4に適応させるのを手伝ってもらえますか。Firefox4 以降、拡張機能の開発にいくつかの変更があるためです。
そのアドオンには、いくつかの XPCOM コンポーネント、1 つの .dll ファイル、および XPCOM 関数があります。
これはアドオンの .xpi です:
http://www.oxymoronical.com/files/extensions/FindBarRX/archive/FindBarRX-1.0.1.rev45.xpi
Firefox4 の変更点に関するこの記事を読みました。
https://developer.mozilla.org/en-US/docs/Mozilla/XPCOM/XPCOM_changes_in_Gecko_2.0
しかし、まだすべての変更を適用することはできません。それらの指示に従ってマニフェスト ファイルを変更しましたが、それでも機能しません。これらのコンポーネントを適切に登録する方法がわかりません。たとえば、彼らが持っているIDがわかりません。
Firefox2 では、「正規表現」チェックボックスを設定し、\d などの正規表現パターンを入力して数字を検索できます。フォックス4では、そのチェックボックスのみが表示されますが、検索テキストボックスの内容には反応しません。
正規表現検索の主な機能を実行するメソッド Find() を含むファイル fbTypeAheadFind.js があります。JavaScript Debugger Firefox アドオン、XPCOM Viewer を使用しました。そして、fox2では、そのデバッガーにロードされたfbTypeAheadFind.jsを確認でき、ファイルにブレークポイントを設定して検索プロセスを実行できます。しかし、fox4 では、デバッガーにこのファイルはありません。
XPCOM コンポーネントが正しくロードされていないことが原因だと思います。では、どうすれば修正できますか。これらのコンポーネントのロードを担当する.dllファイルがあるため、不可能かもしれませんが、変更できません。そして、XPCOM がなくても機能するように、すべてのアドオンを変更できるかもしれません。今はちょっとつらいです。
上記のリンクには、NSGetModule メソッドを NSGetFactory に変換する必要があるという文があります。しかし、NSGetModule はその .dll ファイルに格納されています。そのため、すべてのソース コードを再構築して別の .dll を作成し、NSGetFactory のものを取得する必要があります。しかし、私はそのソースコードを持っておらず、それを作成する方法さえ知りません。
これは私の編集したchrome.manifest です:
content findbarrx chrome/content/
locale findbarrx en-US chrome/locale/en-US/
skin findbarrx classic/1.0 chrome/skin/
overlay chrome://browser/content/browser.xul chrome://findbarrx/content/browserOverlay.xul
overlay chrome://browser/content/browser.xul chrome://findbarrx/content/bindingOverlay.xul
style chrome://browser/content/browser.xul chrome://findbarrx/skin/findbarrx.css
interfaces components/fbITextExtractor.xpt
binary-component platform/WINNT_x86-msvc/components/FindBarRX.dll
component {a5089a1b-2afe-4dae-94b4-c051c3cde90a} components/fbFallbackTextExtractor.js
contract @blueprintit.co.uk/fallbacktextextractor;1 {a5089a1b-2afe-4dae-94b4-c051c3cde90a}
category profile-after-change FindBar-RX-Text-Extractor @blueprintit.co.uk/fallbacktextextractor;1