私はChrome拡張機能を作成しています。その一部には、ポップアップページのボタンをクリックすると現在のタブのタイトルとURLを取得する必要があります。Chrome拡張機能:現在のタブをポップアップから取得する
私は以前Chromeのメッセージパッシングシステムを使用していましたが、多くの努力を払って、多くの場合、それを動作させることができました。しかし、私はポップアップ・ページでそれらを使用する必要はありませんでした。私が読んだことから、それははるかに難しいです。
popup.html
/popup.js
:私がこれまでに把握するために管理してきたタイムラインはこれです リクエスト/メッセージは、コンテンツに送信されます。 ボタンが
popup.html
/popup.js
をクリックしますスクリプトcontentScript.js
: タイトルと現在のタブのURLを変数contentScript.js
に格納されています: リクエスト/メッセージがポップアップページcontentScript.js
から受信されます 2つの変数は、ストリング化された応答として送信されますpopup.html
/popup.js
: 2つの変数は通常、私はこれを把握することができるだろう応答
から解析されますが、私は作品にスパナを投げてきたいくつかのことを読みました例えば:
chrome.tabs.getSelected
は、バックグラウンドページ/スクリプトでのみ使用できます。これは、コンテンツスクリプトをまったく使用する必要がないことを意味しますか?- コンテンツスクリプトからポップアップページに直接メッセージを送信することはできません。背景ページを経由する必要があります。
- メッセージを渡す前にポップアップウィンドウを確認する必要があります私はこれを行う方法を知っています)
私はすでにクロムのメッセージパッシングシステムを見つけましたが、これは私を完全に混乱させました。したがって、この投稿。
'クローム:クエリだけでは現在のタブを含むタブの配列を返しますので
、コールバックで
のEtほらを最初の要素を取るようにしてください。 tabs.getSelected'は、 'chrome.tabs.query'のために推奨されなくなりました(ドキュメントにもリストされていません)。ポップアップページで 'chrome.tabs.query'が動作するかどうかはわかりません。 – Stan
使い方についてご意見はありますか? – mythofechelon
サポートされるまで 'getSelected'を続けることができます。特に' query'が動作するかどうかテストします。特にマニフェストバージョン2(バージョン1は来年中止予定)で動作します。最後の手段として、あなたの背景ページで 'onCreated'、' onActivated'のクロムタブを聴いたり、アクティブなタブを変数に保存したり、 'getCurrentTab'というメソッドで返すことができます。それは 'chrome.extension.getBackgroundPage()。getCurrentTab()'です。 – Stan