問題タブ [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 - loadOneTab を使用した Form メソッドの複製
フォーム オブジェクトをページに動的に挿入すると、フォームを送信して削除すると正常に動作します。
フォーム コードの例を次に示します。
で同じプロセスを実行しようとするとloadOneTab()
、結果POST
はまったく同じではないため、結果は上記と同じではありません。
ヘッダーを確認すると、「一部の値」が完全に送信されず (切り取られて)、 が設定されますContent-Length: 0
。
私は何かが欠けているに違いない。
注: image_content の値は 'data:image/png;base64' です。データ URI の
NoScript はフォームと XSS の送信で問題を引き起こしますloadOneTab
。inBackground
javascript - XMLHttpRequest POST formData を新しいタブに
はではloadOneTab()
利用できないためformData
、
formData
新しいタブに投稿するには どうすればよいですか?- 上記の新しいタブの前景/背景ステータスはどのように設定できますか?
Using FormData Objectsのほんの一例:
明確化:
通常の HTML フォームはtarget="_blank"
、フォーム データを新しいタブに POST します。
同様に、前述のように、loadOneTab()
データを新しいタブに POST することもできます。
XMLHttpRequest でそれを行うことは可能ですか?
firefox-addon - アドオンによって Firefox FIND の動作を変更または拡張できますか?
アドオンによって Firefox FIND
( Ctrl+ f) の動作を変更または拡張できますか?
変更できない場合、アドオンが要素を検索バーに挿入してFIND
、( Ctrl+ f)と同時にアクティブになるようにするにはどうすればよいですか?
firefox-addon - 再起動なしのアドオンの bootstrap.js にカスタム jsm モジュールをロードできますか?
次を使用して、再起動なしのアドオンにカスタムモジュールをロードしようとしています:
chrome/content/modules/Test.jsm :
chrome.manifest :
ブートストラップ.js :
ただし、次のタイプの WARN メッセージが表示されます (これは 用でしたshutdown()
が、基本的にはすべての関数で同一であり、グローバル スコープでの以前の試行でも同じです)。
1409229174591 addons.xpi WARN Exception running Bootstrap method shutdown on test@extensions.codifier.nl: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXPCComponents_Utils.import]" nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)" location: "JS フレーム :: resource://gre/modules/addons/XPIProvider.jsm -> file:///test/bootstrap.js :: shutdown :: line 21" data: no] スタック トレース: shutdown()@resource ://gre/modules/addons/XPIProvider.jsm -> file:///test/bootstrap.js:21 < XPI_callBootstrapMethod()@resource://gre/modules/addons/XPIProvider.jsm:4232 < XPI_updateAddonDisabledState() @resource://gre/modules/addons/XPIProvider.jsm:4347 < AddonWrapper_userDisabledSetter()@resource://gre/modules/addons/XPIProvider.jsm:6647 <uninstall()@extensions.xml:1541 < oncommand()@about:addons:1 <
chrome.manifest
でディレクティブはまだ使用できませんbootstrap.js
か? それとも、ある種のセキュリティ違反を試みているのでしょうか? それとも、私は単に些細なことをしているのですか?
私が達成したいと思っていたのは、次のようなことができるということです。
chrome/content/modules/Test.jsm :
ブートストラップ.js :
おそらく、最初は少しやり過ぎかもしれませんが、モジュールやオブジェクトの実装を非表示にして、bootstrap.js
非常にクリーンに保つというアイデアが好きです。
他の手段でこれを達成する方法について提案がある場合: 私はすべて耳にします。
firefox-addon - すべての領域が bootstrap.js::startup() の CustomizableUI に登録されるまで待つにはどうすればよいですか?
ウィジェットである再起動なしのアドオンを構築していCustomizableUI
ます。
CustomizableUI.createWidget()
中に電話するとき、その物件を優先エリアの選択の 1 つにしてstartup()
ほしいのですが。defaultArea
現在、私は次のようなものでこれを達成しています:
つまり、優先エリアが存在するかどうかを確認しています。startup()
インストール直後の では、これはほとんど期待どおりに機能します。これは、基本的にすべての対象領域 (Classic Theme Restorer などの他の拡張機能から) が既に登録されているためです。ただし、アドオンが既にインストールされていて、Firefox が起動したときCustomizableUI.areas
は、関心のあるすべての領域がまだ満たされていません (おそらく、関心のある領域を登録する拡張機能よりも先に拡張機能が読み込まれるためです)。
を利用してみましたがmostRecentWindow.addEventListener( 'load', /* etc */ )
、mostRecentWindow
は の戻り値ですがnsIWindowMediator.getMostRecentWindow( 'navigator:browser' )
、
- アプリの起動時
mostRecentWindow
にnull
- アドオンのインストール時にイベントが発生しなく
mostRecentWindow
なりましたload
CustomizableUI.createWidget()
だから、私の質問は次のとおりです。関連するすべてのコードがロードされるまで呼び出しを待つ簡単で効果的な方法は何ですか?
私がやったことは次のとおりです(これはNoitidartが提案したものでもあります)。これはうまくいくようです: