問題タブ [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 モバイル用の再起動不要 (ブートストラップ) 拡張機能の getElementsByName
私は一般的に Firefox を使用した拡張機能の開発、特にモバイル バージョンの開発に不慣れで、この問題に直面していて気が狂いそうになっています。
特定のタグ名 example<iframe>
または<p>
またはを持つ要素を抽出する必要があり<script>
ます。当然、 を使用することも考えましgetElementsByTagName()
たが、うまくいきません。その上、ドアハンガーのボタンの機能にリンクすると機能しないため、正確にどこに配置すればよいかわかりません。スタートアップ関数に変更すると、警告ウィンドウが表示されますが、結果は空 (null) になります。
私は本当に立ち往生しており、皆さんの助けが必要です. ここで私がそのために使用しているコード行:
ドアハンガーのボタンを押すと、抽出された要素の配列の長さを警告ウィンドウとトーストに表示しているだけです。
javascript - XUL キーを動的かつ安全に設定するには?
ブートストラップ アドオンのキー要素を動的に作成しようとしています。現在、keyset
要素を作成してdocument.getElementById('mainKeyset').parentNode
withに追加してから、要素 ( ) をappendChild()
作成して. 、、および属性を設定してから、関数を に追加します。この後、 を実行して正常に呼び出すことができます。しかし、の属性で割り当てた修飾子とキーを押しても、何も起こりません。key
myKey
keyset
key
id
modifiers
key
myKey.addEventListener('command', function() {myFunction()});
key
myFunction()
myKey.doCommand()
key
動的に設定するとセキュリティ上の問題があることがわかっているため、属性command
と属性を設定しないようにしていますが、何らかの方法でそれらを使用する必要があるのでしょうか? command または oncommand が設定されていないとキーは機能しないと述べられているのを見たことがあります。oncommand を「void(0);」に設定すると、イベント リスナーが機能します。(ここに示されている例に従います)。ただし、そのようなものが Mozilla の拡張承認プロセスを通過できるかどうかはわかりません。oncommand
oncommand
android - Android拡張機能用のbootstrap.js firefoxにjsファイルを含める
私は Android 用の firefox のブートストラップ拡張機能に取り組んでおり、js ファイルを bootstap.js にインポートしたいと考えています (xul 拡張機能でコンポーネントをインポートするなど)。chrome.manifest を使用してリソース エイリアスを使用する従来の方法は、ブートストラップされた拡張機能では許可されていません。Erik Vold のこのコードを試しましたが、うまくいかないようです
助けていただき、本当に感謝しています。
android - nsicookieservice を使用して Cookie 変更リストを取得する方法
nsicookieservice に関する MDN ドキュメントを読んでいて、このサービスの通知 (cookie-changed と cookie-rejected) に興味があります。これは、変更または拒否された Cookie のリストを取得できるということですか? 次のようなことを行うことでそれが可能になりますか?
ご説明ありがとうございます。
私はドキュメンテーションを読み直し (実際に読みました)、多くの拡張機能のソース コードを検索しました。私が構築している拡張機能が Android 用の firefox 用に起動されているが、SDK を使用していないという問題。私が理解したことに基づいて、私はこれを書きました:
次に、ページをロードするときにオブザーバーを追加するためにこれを行います。
それは機能せず、logcat でさらに混乱するエラーは見つかりません。本当に行き詰まっており、あなたの助けが必要です。
dom - 再起動のないアドオンで loadOverlay() を使用しても問題ありませんか?
Firefox アドオン。既存のアドオンを再起動なしのアドオンに移植しています。多くの UI 要素 (ほとんどがボックス/説明と画像) を含むパネルがあり、XUL オーバーレイ ファイルでパネル要素を定義するのは非常に便利です。そうしないと、大量の js コードが肥大化してしまいます。
パネル要素 (親) 自体はコードで動的に作成されます。次に を使用loadOverlay
し、「マージ」イベントを待ってから、オーバーレイされたドキュメントからパネル要素の子を追加します。また、削除時に要素がクリーンアップされるようにします。
ただし、オーバーレイを使用すると、AMO レビューに合格しない可能性が高くなります。そして、私が考える理由のいくつかは次のとおりです。
- ほとんどの場合、オーバーレイ要素は削除中に問題を引き起こします (例: ツールバーのボタンがその位置を覚えているなど)。
- オーバーレイ ファイルに js/css ファイルを添付すると問題が発生します。
- loadOverlay にバグがある ( 496320、330458 )
そして、ここに私の推論があります:
- loadOverlay() API 自体は非推奨ではありません。実際、「凍結されておらず、後で変更される可能性があります」。これは、将来的に使用できる可能性があることを意味します。
- 2 番目のオーバーレイ ロードが失敗するというバグは、オーバーレイ マージなしで初期化しないため、私の場合には当てはまりません。
- 設定ウィンドウなどに静的オーバーレイを使用することは、現時点では完全に受け入れられます。
- 私の場合、パネルは設定ウィンドウのように動作します(オンデマンドで表示され、アドオンの削除時にクリーンアップされます)
- オーバーレイに js/css がアタッチされておらず、要素のイベント リスナーもありません。オーバーレイは、ボックスと説明テキストを定義するためにのみ使用され、それ以上のものはありません。
これらを考慮して、再起動のないアドオンにオーバーレイと loadOverlay() を使用することは許容されますか? そうでない場合、代替手段はありますか?
javascript - ボタンを BrowserPalette にブートストラップして永続化する
私は何かに興味があります。ボタンを BrowserPalette に追加してから、このコードを使用してツールバーに移動し、貼り付けをスクラッチパッドにコピーして実行することができます。
ただし、doc.persist
ブラウザを再起動するとボタンが消えます。永続化を使用して、ブートストラップ アドオンの初回にボタンを追加し、それを永続化することは可能ですか?
これはまた、ボタンを削除してそれを保持する方法という疑問にもつながりますか? (つまり、アンインストール時にパレットから完全に削除し、別の例:ツールバーから削除するだけで、つまり、パレットに送り返してそれを保持するだけです)
ここから持続コードを取得しました: https://developer.mozilla.org/en-US/Add-ons/Code_snippets/Toolbar#Adding_button_by_default
javascript - 再起動のない拡張機能で jsctypes を非同期に使用する
dllファイルをロードstartup()
してグローバル変数に保持する小さなブートストラップ拡張機能があります。これを適切に使用する方法が正確にはわかりませんが、これについて修正してくれるかもしれませんが、dll ファイルから使用する関数を非同期的に呼び出すことができるかどうかを知りたいと思っています。
今私がやっていることは次のとおりです。
コードでかなり頻繁にsomeFunc
使用しますが、呼び出しには時間がかかります。非同期で呼び出す方法はありますか? または、呼び出し中に Firefox がフリーズしないように呼び出しますか?