問題タブ [opera-extension]
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 - Opera 拡張機能 : オプションの保存とクリップボードへのアクセス
数年前に書いた Firefox の拡張機能を Opera に移植することを考えています。最初から正しい方法をとっていることを確認したいので、一般的な質問をお許しください:
- クリップボードからの読み取りまたはクリップボードへの書き込みには、どの API を使用すればよいですか?
- 私の拡張機能はユーザーのオプションに依存しています。私が理解しているように、google chrome のオプション ページは Opera では利用できません。オプションの現在の値 + ストレージ API を表示するには、サイド ベアを使用する必要がありますか?
ありがとう
javascript - URL バー/オムニバーの Opera/Chrome コンテキスト メニュー
Opera では、contextMenu を使用して選択したテキストを検索する拡張機能の例を試しています。ユーザーがアドレス バー (URL バー、オムニボックスなど) を右クリックしたときに、contextMenu にメニュー エントリを追加したいと思います。
そしてバックグラウンドスクリプトで:
しかし、成功せずに。それは可能ですか?明らかな何かが欠けていますか?
ありがとう。
google-chrome-extension - すべての検索プロバイダー/エンジンのリストを取得するための API?
Opera 拡張機能を開発しています。ある時点で、ユーザーは検索を実行できます。今私はで使用chrome.tabs.update
し{ url: `https://google.com/search?q=${encodeURIComponent(query)}`}
ます。これはユーザーフレンドリーではありません。https://google.com/search?q=
より良いアプローチは、またはhttps://ca.search.yahoo.com/search?p=
拡張機能のオプション ページで、ユーザーが編集可能な URL のリストを維持し、ユーザーがそれらのいずれかを選択できるようにすることですが、私は車輪を再発明したくありません。
Chromium ベースのブラウザーにはすべて、ユーザーが構成可能な検索エンジン/プロバイダーがあり、ユーザーがそれらのいずれかを選択するか、デフォルトを使用できるようにしたいと考えています。これを可能にするには、基本的に次の 2 つの API 関数が必要です。
設定されたすべての検索エンジンのリストを取得する関数。
デフォルトのエンジンを取得する関数。
API docsで私の問題に似たものは見つかりませんでした。
ところで、Opera にも文書化されていないchrome.search
機能があります (Chromium にはありません) が、ユーザーのデフォルトの検索エンジン設定に関係なく、常に Google 経由で検索されます。
ありがとう。
PS。この質問をするのに適切な場所があれば教えてください。
javascript - element.click() を使用して Javascript でボタン クリックをシミュレートする
特定のチャット メッセージを自動的に送信する Opera の拡張機能を作成しようとしています。(正確にはコマンドです。)そのために、メッセージをテキストエリアに入力し、ボタンのクリックをシミュレートしてメッセージを送信し、受け取った返信を読みたいと思います。
JavaScript の Element.click() 関数を使用してクリックをシミュレートしようとしてきましたが、うまくいきません。私のコードは次のようになります。
テキストエリアには必要な値が入力されますが、ボタンをクリックしません。また、コンソールに出力がありません。私が得ることができるどんな助けでもうれしいです.
よろしく、キラプトル1
OnClick
更新:あなたは正しかった、ボタンには私が思っていたようなイベントはありません。正直なところ、メッセージを送信する方法がわかりません。所有していないWebサイトのプラグインを作成しているため、ソースなどを編集できません。
google-chrome-extension - 保存されたデータを使用してサブメニュー エントリを定義する
私の拡張機能は、ユーザーのオプションを使用して、メインの拡張コンテキスト メニュー エントリの下にサブメニューを作成する必要があります。オプションはテーブルに格納され、各行はサブメニューを定義しています。テーブル全体はchrome.local.storage
、キーを持つjson 文字列として格納されますjsondata
。
マニフェストは次のとおりです。
バックグラウンド スクリプトでは、次を使用してデータを取得しようとしています。
次に、build_submenu
複数を呼び出しchrome.contextMenus.create({... })
てサブメニューを追加する必要があります。今のところ、呼ばれませんbuild_submenu
。不可能なことをしようとしているのですか、それとも明らかな何かを見逃しているだけですか?
ありがとう。
javascript - Chrome 拡張機能: バックグラウンド スクリプトからファイル ダイアログを開く
Opera ブラウザ用の音楽プレーヤー拡張機能に取り組んでいます。アイデアは単純です。ローカル マシンからファイルを選択し、サイドバーで再生します。要素のおかげで<audio>
、サイドバー パネルが開いている間、すべてが正常に機能しています。
メソッドを使用してcreateObjectURL()
、ファイルを<audio>
要素に渡します。問題は、サイドバー パネルがアンロードされると失われる、メモリ内のファイルへの参照のみを保持することです。これらの参照をバックグラウンド スクリプトに送信できますが、役に立ちません。
FileReader
CPU と RAM を大量に使用し、ファイルを開くとブラウザが一時的にフリーズするため、a を使用することはできません。そこで、このメソッドをバックグラウンド スクリプトで使用するというアイデアを思いつきましたcreateObjectURL()
。これにより、ブラウザー自体が実行されている間も参照が有効になります。
問題は、バックグラウンド スクリプトからファイル ダイアログを開くことができないことです。ファイル タイプの入力を作成し、click()
メソッドも使用できますが、ダイアログ ウィンドウが表示されません。onclick
ただし、イベント リスナーが呼び出されているため、クリック イベントが発生します。
そこで、助けを求めたいと思います。バックグラウンドスクリプトからファイルダイアログを開くことはできますか? もしそうなら、どうすればそれを機能させることができますか?
javascript - 完了前に chrome.webNavigation.onCompleted が発生しましたか?
自分用に拡張用のブラウザを構築しようとしています。アイデアは、プラグインのアイコンをクリックすると、ページが開くということです。その新しいページの読み込みが完了した後にいくつかのコードを実行したいのですが、どういうわけかうまくいきません。
ここで失敗する部分があります:
どちらも同じバックグラウンド スクリプトにあり、コンテンツ スクリプトはありません。マニフェストのアクセス許可は次のとおりです。"tabs", "history", "webNavigation"
開発者コンソールで確認して
document.getElementsByTagName("video").length
実行すると、正しい番号が得られます。