注意:クロスブラウザー拡張機能を開発する場合 (そうなってほしいです!)、 を使用することをお勧めしますchrome.tabs.query()
。詳細については、 Jean-Marc Amon の回答を参照してください。この回答は引き続き Firefox と Chrome の両方で機能しますがquery()
、より一般的に使用され、より多くのオプションがあり、バックグラウンド ページとポップアップ ビューで機能します。
APIから、、、またはchrome.tabs
を使用できます。getCurrent()
query()
update()
今のところ、update()
これにより、他に多くのことをする必要なく現在のタブを更新できるため、私はそれを好みます。注意:コンテンツ スクリプトから
は使用できません。update()
query
コンテンツ スクリプトから URL を更新する必要がある場合は、代わりに使用する必要があります。Jean-Marc Amon の回答は、この場合にアクティブなタブを取得する方法の素晴らしい例を提供します (彼に賛成票を投じることを忘れないでください!)。
update()
let myNewUrl = `https://www.mipanga.com/Content/Submit?url=${encodeURIComponent(tab.url)}&title=${encodeURIComponent(tab.title)}`;
chrome.tabs.update(undefined, { url: myNewUrl });
ここでは、update の最初の引数を undefined に設定しています。これは、更新するタブ ID です。未定義の場合、Chrome は現在のウィンドウの現在のタブを更新します。
詳細については、ドミノの回答を参照してください。また、必要ないupdate
ことにも注意してください。undefined
繰り返しますが、役立つと思われる場合は、回答にも賛成票を投じることを忘れないでください。
getCurrent()
getCurrent
また、タブ以外のコンテキスト (背景ページやポップアップ ビューなど) から呼び出すこともできません。
現在のタブを取得したら、単に を渡しupdate()
ます。
chrome.tabs.getCurrent(function (tab) {
//Your code below...
let myNewUrl = `https://www.mipanga.com/Content/Submit?url=${encodeURIComponent(tab.url)}&title=${encodeURIComponent(tab.title)}`;
//Update the url here.
chrome.tabs.update(tab.id, { url: myNewUrl });
});
注意:この機能を使用するには、ファイルで権限が有効になっていることを確認する必要があります。tabs
manifest.json
"permissions": [
"tabs"
],