問題タブ [firefox-addon-restartless]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Firefox のデフォルト/組み込みイベント リスナーの利用
画像が右クリックされた場合にアクティブになるコンテキストメニュー項目があります。これは、アクティブになるのとまったく同じ方法です'context-copyimage'
。
そのメニュー項目を に関連付け/ペアリングすることで'context-copyimage'
、余分な (重複した) イベントリスナーと表示/非表示ハンドラーを追加する必要がなくなりますか??!!
(オブザーバーを追加'context-copyimage'
して目的を無効にする)
そうでない場合、使用するイベントリスナーを使用することは可能'context-copyimage'
ですか?
更新:
リスナーを削減しようとしています。現時点では、スクリプトにはpopupshowing
リスナーがあります。popupshowing
では、チェックしgContextMenu.onImag
て true の場合、メニュー項目を表示します。Firefoxcontext-copyimage
もまったく同じことを行います。スクリプト内のイベントリスナーを削除/削減するために、これら2つを結び付けることができるかどうか疑問に思っていました.
私もダガーとおしゃべりをしていて、彼はこう言いました:
... 組み込みアイテムの状態はイベント ハンドラから設定されず、nsContextMenu のコンストラクタから設定され、それにフックするメカニズムはありません。
どうやら、それは不可能です
javascript - ローカル XPI、ファイル、およびディレクトリのリストを読み取る Firefox アドオン
#amo-editors でのチャットに続いて、Firefox アドオンから次のことが可能かどうか疑問に思っていました。
- 読み取り用にローカル XPI を開く
- 上記の XPI のすべてのファイルをサイズとともに一覧表示する
- 選択したファイルの読み取り
javascript - Firefoxの再起動なしのブートストラップ拡張スクリプトがリロードされない
Firefox を再起動しないと、Firefox 拡張機能に反映されたソース コードの変更を取得できません。ブートストラップアプローチを使用すると、これが可能になるはずです。
ソースコードは次のとおりです:
bootstrap.js
loader.js
ローダーでメッセージを変更すると、Firefox (バージョン 30) に反映されません。私の開発フォルダーへのパスを含むプロファイル拡張フォルダーに「goog@myself.com」というファイルがあります。Firefox を再起動しない限り、about:extensions ページから有効化/無効化または削除/元に戻すと、loader.js に加えた変更が反映されません。コードが動的にロードされない理由へのポインターは役に立ちます。
SDK を開発に使用することに興味はありません。https://developer.mozilla.org/en-US/Add-ons/Setting_up_extension_development_environmentで説明されているように、さまざまなフラグも設定しました
編集1:
これは、シナリオをテストするために使用している xpi(1.35KB) としてパッケージ化された上記のコードへのリンクです。https://www.dropbox.com/s/0io8b081ybu632q/test.xpi
編集2:
私の目標は、コードを変更するたびにブラウザーを再起動する必要なく、開発プロセスをスピードアップすることです。ここに関連する投稿がありますが、時代遅れのようです。
javascript - Firefox アドオンで、インポートされたオブジェクトがインポーターのインポートされたモジュールにアクセスできないのはなぜですか?
明確にするために、次の単純化された例を検討してください。
one.js
two.js
これがどのように機能するかは知っていますが、問題はなぜですか?
その結果、たとえばServices.jsm
、すべてのモジュールで付与する必要があります。
Firefox はモジュールをキャッシュし、パフォーマンスに大きな違いはありませんが、インポートの繰り返しを回避できるかどうかを知りたいですか?
javascript - Firefox アドオン: 画像のアップロード
Firefox アドオンからサイトに画像をアップロードしたいと考えています。
Image データを base64 に変換し、データを XHR POSTできることはわかっていますがcreateElement('canvas')
、Firefox で処理できるかどうかを確認したいと思います。
通常、ユーザーはサイトの [BROWSE] をクリックすると、Firefox は [Open File Upload
] ダイアログを開き、ファイルを選択して [OPEN] をクリックします。
ブラウザで開いたローカル ファイル(画像など) を宛先に直接アップロードできるように、コンテキスト メニューから自動化したいと考えています。
それは可能ですか?
説明:
Firefox 経由でアップロードするファイルの選択では、次のデータが必要です。
- ターゲット フォーム
- ローカル ファイルの場所
- FILE UPLOAD ダイアログ ボックスの [OPEN] ボタンに関連付けられたアクション
私が作成したいコンテキスト メニューの状況:
- ターゲット フォーム: スクリプトにハードコードされます
- ローカル ファイルの場所: 右クリックされたファイル (つまりgContextMenu.target.src
)
- アクション: これが私がしたいことです上記ボタンの機能に「command」を付けて実行(既存のFirefoxの機能)
つまり、手動でnew XMLHttpRequest()
データを作成して POST するのではなく、代わりに Firefox の既存の機能を使用します。
つまり、あたかもそれが実行されたプロセスであるかのように、「対象フォーム」と「ローカル ファイルの場所」を FILE UPLOAD の OPEN ボタン機能に手動でフィードします。
javascript - XMLHttpRequest POST し、ターゲット ページを新しいウィンドウ/タブで開く
in でフォームの'POST'
アクションをどのようにエミュレートしますか? (つまり、データを投稿し、ターゲット ページを新しいタブで開く)target="_blank"
XMLHttpRequest
javascript - ローカル URI をパスに変換するにはどうすればよいですか?
ローカル (ファイルシステム) URI をパスに変換するにはどうすればよいですか? + + +
で実行できますが、それは長い道のりのようです。
もっと短い方法はありますか?nsIIOService
newURI()
QueryInterface(Components.interfaces.nsIFileURL)
file.path
コード例を次に示します。
javascript - HTTP-on-modify-request を使用して URL をリダイレクトする
URL がいくつかの条件に一致する場合に新しい URL にリクエストをリダイレクトする Firefox 用のアドオンを構築しています。私はこれを試しましたが、うまくいきません。
URL を処理するために HTTP-on-modify-request にオブザーバーを登録します。URL が条件に一致する場合は、新しい URL にリダイレクトします。
これが私のコードです:
Firefox アドオンの開発は初めてです。
javascript - 読み込まれたウィンドウが Firefox Electrolysis Window であることを知る方法
Firefox Electrolysis ウィンドウの機能をコーディングしたいと考えています。しかし、ロードされたウィンドウが Firefox Electrolysis ウィンドウであり、通常の Firefox ウィンドウではないことをどのように知ることができますか?
Scratchpad でコードを使用できます。コメント
読み込まれたウィンドウを検出する必要がある場所は、Firefox Electrolysis ウィンドウですが、通常の Firefox ウィンドウではありません。