アドレスバーの内容をリアルタイムで取得できるFirefoxアドオンを作成したいとします。たとえば、このアドオンはすべての「a」を「A」に変更します。ユーザは「a」を押した。 問題は、Javascriptでこれを行う方法が見つからないということです。アドレスバーのコンテンツをリアルタイムで取得する方法はありますか?Firefoxアドオンのアドレスバーのキーイベントへの応答
答えて
Firefoxの拡張機能は、アドレスバーを完全に制御できます。 omnibar拡張機能のソースコードを確認してみてください。 (ソースコードを入手するには、拡張機能をインストールしてFirefoxのプロファイルフォルダを突き抜けてください)
.xpiファイルをローカルに保存し、.zipファイルに名前を変更して開くことができます。通常はそこに.jarファイルがあります。.jarファイルは.zipファイルにリネームされて、周囲を突き抜けることができます。あなたが誤って変更や何かを保存する場合に備えて、firefoxプロファイルフォルダをつぶすことよりも安全かもしれません... – Kip
...またはあなたはfirefoxプロファイルフォルダのコピーを作ることができます。今度はそれについて考えてください... – Kip
.. AMOにログインしている場合、オンラインでソースを閲覧することができます:https://addons.mozilla.org/en-US/firefox/files/browse/60041 – Nickolay
ユーザーをリダイレクトせずにアドレスバーのテキストを変更するだけであれば、これはできません。
ロケーションオブジェクトのプロパティが変更されるたびに、変更されたURLでwindow.location.assign()が呼び出されたかのように、URLを使用してドキュメントがロードされます。
ブラウザでjavascriptを使用して、ユーザーをリダイレクトせずにアドレスバーの文字列を変更することができれば、フィッシングが発生しやすくなります。それはあなたがしようとしていることではないですか?
彼はブラウザのアドオンからこれを実行したいと思いますページから。ブラウザのアドオンのjavascriptはもっと多くのことをすることができます(Tobiasの言うとおり、オムニバスの拡張機能はそうすることができるようです) – Kip
私はフィッシングをやろうとしていません。入力した文字をキーボードレイアウトの英語の文字に置き換えて英語で書く場合 –
JavaScriptでは、window.location.href
は値を与えますが、onkeyupは見ることができますが、AFAIKでは、設定した値をページにロードせずに場所フィールドに書き戻すことはできません。私は何を意味することは、次のことをやったならば、それはページをリロードなり、次のとおりです。
window.location.href = window.location.href.toLowerCase();
私はFirefoxの拡張機能の仕組みに慣れていないんだけど、多分これを行うにはより多くの「ネイティブ」な方法がありますか?
| firefox拡張のコードには適用できません。通常、ブラウザウィンドウとその| location |ブラウザのUIへの特別なURLです。 – Nickolay
あなたは実際にあなたが立ち往生した時点では、実際には言わなかった。
まず、メインブラウザウィンドウ(browser.xul)をオーバーレイする単純な拡張子を作成する必要があります。 Building an Extension - MDCURL Fixer - good example extension
次に、URLバーにイベントリスナーを追加する必要があります(キーワード:addEventListener、events)。利用可能なさまざまなイベントに関する文書を読むべきですが、おそらく "keypress"を聞きたいでしょう。 Firefoxやその他の拡張機能のソースを検索して、リスナーにどの要素が接続されているかを確認することができます。 DOMインスペクタ拡張で、DOMツリーを調べることができます(使用可能な要素を確認することができます)。
イベントリスナーでは、ロケーションバー(gURLBar.value、IIRC)のURLを確認して更新する必要があります。また、キャレットの位置を保持するために何かをする必要があります。
gBrowser.addProgressListener(myExt_urlBarListener, Components.interfaces.nsIWebProgress.NOTIFY_LOCATION);
urlbarがで更新することができます。
に記載されているフォーラムで助けを求めることを躊躇しないでください。あなたは、次のようなurlbar変更を追跡するリスナーが必要な場合がありますこのコマンド:
document.getElementById(comVar.URLBAR_ID.gui).value
Javascripで各キーストロークを検出する必要があります上記のコードでURLを読んでください。詳細が必要な場合は、Firefoxのスプーフィングアドオンの1つでコードを抽出してチェックアウトしてください。
- 1. firefoxアドオンからのファイルシステム/ディレクトリパスへのアクセス
- 2. Firefox 6アドレスバーのjavascript
- 3. Firefoxアドオンのローカライゼーション
- 4. Firefoxアドオンの "document_start"?
- 5. は、Firefoxのアドオン-SDK
- 6. Firefoxのアドオン:XMLHttpRequestを
- 7. UNUserNotificationActionへの応答
- 8. Rails:XMLへの応答
- 9. Firefoxのアドオンの署名エラー
- 10. シンプルなFirefoxアドオンのチュートリアル
- 11. Firefoxアドオンのiframeで遊ぶ
- 12. モノベースのFirefoxアドオンですか?
- 13. firefoxアドオンのキーストロークをシミュレート
- 14. テキストフィールドへのキーイベントのJavaScriptインターセプト
- 15. Firefoxアドオンを書くのはFirefox/Chromeのアドオンよりも難しいですか?
- 16. Firefoxの拡張アドレスバーのスタイル設定
- 17. wso2フィルタメディエータへの応答プロパティ
- 18. Express APIへのXML応答
- 19. PATCH要求への応答
- 20. API Angular2モデルへの応答
- 21. 角度、プリフライトリクエストへの応答
- 22. ASP.NetリダイレクトIFrameへの応答
- 23. Jax-rs Angularjsへの応答
- 24. FirefoxアドオンSDKを使用したXUL要素へのアクセス
- 25. arrow jsonの応答とコンソールへの応答
- 26. Firefox SDK |アドオン開発
- 27. バイナリクラシファイア付きFirefoxアドオン
- 28. Firefoxアドオンでのユーザー設定の使用
- 29. HTML Validatorの+設定ファイルのFirefoxアドオン
- 30. javascriptの、Firefoxのアドオン、オープン新しいタブ
実際にお聞きしている内容を少し明確にするためにタイトルを変更しました。 – Kip