ホームページ >ウェブフロントエンド >jsチュートリアル >Firefox Extension Schoolで彼らが決してあなたに言うことのない10のこと
これは私の最近の電子ブックのフォローアップ記事であり、独自のFirefox拡張機能を構築します。これは、CodeBurner、The SitePoint参照拡張機能を含むFirefoxの拡張機能の構築に関する経験から収集した有用なヒント、トリック、ハッキングを追加しました。 Firefox拡張機能の構築方法に関する基本的な知識が想定されているため、まだebookの無料コピーを手に入れたい場合は、まだまだ行っていない場合は
ここにあるもののほとんどは、Mozilla Developer Center(MDC)で明示的に文書化されていません。これは、まだ「やる」リストに載っているため、または自分で作ったためです。その一部は十分に文書化されていますが、とにかくそれに注意を向ける価値があると思ったので、それはとても便利だと思っていました。
ヒントは複雑さの順にリストされており、最も短くてより単純なアイデアから始まり、より長くてより複雑なアイデアに移行します。トップレベルの関数として(関数キーワードを使用)。ただし、実際には、メインエクステンションオブジェクトのメソッドとして作成する必要があります。
キーテイクアウト`
`、 `XULコンテキストメニューのアイテムをクリックすると、イベントターゲットリファレンスは
ほとんどのXUL要素にFlex属性を追加すると、利用可能なスペースを埋めるために拡張します。しかし、フレックスは継承されているため、その子供はtextbox[type="search"] <br>{ <br> list-style-image:url(chrome://myextension/content/images/magglass.png); <br>}も拡大しますが、場合によっては非常に望ましくありません。たとえば、子要素が
は、宣言されたフレックス属性なしで中間ラッパー要素を追加することでそれを無効にすることができます:
5。 Chrome Loadイベントからのダイアログを生成します
window.opendialogを使用して、Chromeロードイベントのモーダルおよびセンタースクリーン機能を使用してダイアログを生成する場合、ダイアログは画面の上部隅に隠されたMac OS Xでほとんど見えません。これは、ダイアログがウィンドウのサイズが確立される前に配置されるため、CenterScreenプロパティが予想どおりに機能しないためです。アラート関数でも同じ問題が発生します。これは、迅速で汚れたデバッグツールとして使用している場合に問題になる可能性があります。ダイアログにカスタムアイコンを追加するには、最初に拡張機能のChromeディレクトリ内にアイコンという名前のフォルダーを作成します。次に、アイコンフォルダー内で、デフォルトと呼ばれる別のフォルダーを作成します。デフォルトのフォルダー内で、要素のIDと同じ名前のアイコンを保存します。たとえば、ダイアログにID MyExtension-Preferencesがある場合、Myextension-Preferences.ico(Windows用、またはLinux用.png)を作成します。 MDCドキュメントでは、LinuxにXPM画像を使用することが示されていますが、アルファチャネルの透明性に対するサポートはありません。 PNGファイルはサポートを提供し、同様に機能します。
<tab label="About" tabindex="0"/>Windows XPのカスタムダイアログアイコン
これは、そのダイアログにアイコンなしで表示されるため、Mac OS Xとは異なります。
FirefoxのWindow Mediatorインターフェイスを使用して、最近開いたブラウザウィンドウへの参照を取得できます。これは、外部ダイアログからWebリンクを開き、window.openerよりも信頼性が高い場合に便利かもしれません。
ウィンドウリファレンスを返す短くて甘い小さな方法、またはブラウザのウィンドウが開かれていない場合はnull:
textbox[type="search"] <br>{ <br> list-style-image:url(chrome://myextension/content/images/magglass.png); <br>}前のヒントからフォローするには、現在開いているすべてのブラウザウィンドウを反復し、URLを抽出し、階層配列にパッケージ化できます(最初にウィンドウでグループ化され、次にタブでグループ化されます)。最終行列の各メンバーは、タブのURLとブールフラグ(選択)を含む配列であり、そのウィンドウで現在選択されているタブであるかどうかを示します。インターフェイスにウィンドウフォーカスの変更に応答します
ほとんどのMACウィンドウは、ウィンドウがフォーカスを失ったときに外観を変更します。この効果を独自のインターフェイスコントロールに実装するには、ウィンドウが焦点を獲得して紛失するかを知る必要があります。最初の本能は、ウィンドウフォーカスとぼやけイベントを使用することですが、それは時には独立して行動することがあるため、この目的で信頼できないことがわかります。たとえば、アプリケーションフォーカスが埋め込みのドキュメントに移動すると、ウィンドウがまだフォーカスされたものであるにもかかわらず、メインウィンドウブラーイベントが発生します。これは、
<tab> elements are natively inaccessible to the keyboard in Firefox for Mac OS X. To make them accessible you need to manually insert them into the tab order, by adding a tabindex attribute with the value 0. This value is effectively "auto", and places the element at its source-order position in the overall tab order:
textbox[type="search"] <br>{ <br> list-style-image:url(chrome://myextension/content/images/magglass.png); <br>}
Firefoxは複数のプラットフォームで利用できます。これらのそれぞれには、外観やインターフェイスコンポーネントの配置に関する独自の規則があります。これの良い例は、アラートダイアログのOKボタンとキャンセルボタンです。WindowsとLinuxでは、OKボタンはキャンセルボタンの左側にありますが、Mac OSでは逆です。窓のボタンの外観と最小化のボタンは、各プラットフォームで異なるため、別のインスタンスです。
これらのバリエーションを考えると、プラットフォーム固有のスタイルシートを独自の拡張機能のインターフェイスに適用できることが多いことがよくあります。これにより、ボタン用の代替アイコン、カスタムインターフェイスコントロール用のさまざまなフォントなどのバリエーションを実装できます。
幸いなことに、Firefoxは特別なフォルダー階層とマニフェストファイルのセットを使用して、これを行うための簡単なメカニズムを提供します。次の図のトップレベルのプラットフォームフォルダーは、Chromeフォルダーと同じレベルにある拡張機能のルートフォルダー内に移動する必要があります。すべてのフォルダー名とファイル名は、スタイルシート自体の名前を除き、ここに示すとおり(ケースに敏感です)とまったく同じでなければなりません。これはあなたが好きなものになる可能性がありますが、もちろん各プラットフォームのコピーで同じでなければなりません。
プラットフォーム固有のスタイルシートのフォルダー階層
<tab> elements are natively inaccessible to the keyboard in Firefox for Mac OS X. To make them accessible you need to manually insert them into the tab order, by adding a tabindex attribute with the value 0. This value is effectively "auto", and places the element at its source-order position in the overall tab order:
インターフェイスにスタイルシートを追加するには、次のURLパターンを使用してXML-Stylesheet処理命令を追加するだけです。
<tab label="About" tabindex="0"/>あなたがする必要があるのはスキンディレクトリを参照する方法をご覧ください。プラットフォームフォルダーのそれぞれにバージョンを作成してから、同じURLパターンを使用してXULドキュメントに追加するだけで、必要なだけ多くの異なるスタイルシートを使用して原則を拡張できます。 11。ブラウザの履歴にURLを追加しますここに追加のボーナスヒントがあります。 MDCのXULリファレンスでは、History Auto Completeを使用してテキストボックスを作成する方法を説明します。残念ながら、歴史に新しいURLを追加する方法を説明できないため、Firefoxのソースコードをトロールすることで、これを難しい方法で解決する必要がありました。ここに紹介する方法は、URLを追加し、ファビコンを取得して保存し、掘り出し物に自動コンプリートを含む!
履歴オートコンプリートメニューを備えたテキストボックス、プログラム的に追加されたエントリを表示するテキストボックス
>注
:ブラウザの履歴に追加すると、Firefox 3以降は機能しますが、Faviconを取得することはバージョンでのみ動作します。属性。次のコードの例では、関数名Addurltohistoryは必要なものであり、Flex属性はオプションですが、他のすべては正確に示されている必要があります。 CompleSeSelectedIndex属性は、自動コンプリートメニューからアイテムを選択すると、その値がテキストボックスに自動的に書き込まれるようにします。これにより、Enterキーをすぐに押してコマンド関数を発射できます。 NewLines属性は、不要な白人の値(先頭スペースなど)の値を手動で解析することを避けることができるように単純です。これは、textbox[type="search"] <br>{ <br> list-style-image:url(chrome://myextension/content/images/magglass.png); <br>}
矢印ボタンを追加して、enabableHistory = "true"を追加してドロップダウンメニューを表示することもできます。実際には、この後に別のタスクを実行します(指定されたURLを
次に、履歴にURLを実際に追加するビジネスを行います。歴史サービスはプレーンURI文字列を受け入れないため、IURIと呼ばれるものを作成する必要があります。これは、ホストを含むさまざまなメタデータを含むURIオブジェクトであり、後で便利になります。 IOサービスを使用してIURIオブジェクトを作成し、それをGlobal History Serviceに渡してブラウザの履歴に追加します。第一に、何らかの理由でFaviconが予想されるURLにない場合、そして次にFirefox 3.5以降でのみ動作するため、エラーがスローされないようにします。そのため、最初にFaviconサービスを初期化し、次にFaviconのアドレスのIURIオブジェクトを作成します(元のIURIのホスト名を使用)。次に、Favicon IuriオブジェクトをFaviconサービスに渡し、Faviconをロードおよび保存します。
そして、私たちはそれを持っています!次に同じアドレスをテキストボックスに入力すると、そのファビコンとともに自動コンプリートメニューに表示されます。すぐにテキストボックスに表示したい場合は、SetIntervalループを実行して、まだ存在するかどうかを継続的に確認する必要があります。このようなコードでそれを行うことができます:
このコードは少し難しいです:500ミリ秒ごと(setintervalの2番目のパラメーター)、ページのファビコンのファビコンサービスに尋ねます。 Moz-Anno:Favicon:Protocol(Faviconがダウンロードされた場合)またはChrome:Protocol(デフォルトの画像を返す場合)でフォーマットされたURIを返します。 20回(合計10秒)を試した場合、またはページのファビコンを正常にダウンロードした場合 - Moz-Anno:Favicon:URIで、テキストボックスのリストスタイルイメージURLとして設定します。まだ行っていない場合は、CodeBurner Extensionで無料で提供される独自のFirefox拡張機能を作成してください。 Firefox拡張機能の構築に関する別の記事と、Codeburnerファミリーへの新しい追加に関するすべての記事に注意を払ってください。textbox[type="search"] <br>{ <br> list-style-image:url(chrome://myextension/content/images/magglass.png); <br>}Firefox拡張に関するよくある質問(FAQ)
Firefox拡張機能をインストールするにはどうすればよいですか?Firefox拡張機能のインストールは簡単なプロセスです。まず、Firefoxブラウザを開き、メニューボタンをクリックします。これは、右上隅の3つの水平線で表されます。ドロップダウンメニューから、「アドオン」を選択します。これにより、アドオンマネージャータブが開きます。検索バーで、インストールする拡張機能の名前を入力し、Enterを押します。インストールする拡張機能の横にある[Firefoxに追加]ボタンをクリックします。拡張機能を追加する許可を求めるポップアップが表示されます。 [追加]をクリックすると、拡張子がインストールされます。
Firefox拡張機能が機能していない理由がいくつかある可能性があります。これは、Firefoxの時代遅れのバージョン、他の拡張機能との競合、または拡張自体の問題が原因である可能性があります。 Firefoxを最新バージョンに更新し、他の拡張機能を無効にして競合を確認するか、問題のある拡張機能を再インストールしてみてください。問題が続いている場合は、サポートのために拡張機能開発者に連絡してください。
Firefox拡張機能を管理し、Firefoxメニューを開き、「アドオン」を選択します。これにより、アドオンマネージャータブが開きます。ここでは、拡張機能を有効または無効にしたり、拡張機能を削除したり、各拡張子のオプションにアクセスしたりできます。
以上がFirefox Extension Schoolで彼らが決してあなたに言うことのない10のことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。