web-dev-qa-db-ja.com

chrome.tabs.getCurrentを使用して、Chrome拡張機能でページオブジェクトを取得するにはどうすればよいですか?

このコードは、ユーザーが表示しているページの現在のタブオブジェクトをコンソールに出力することを目的としていますが、未定義を出力するだけです。ブラウザアクションページ内から実行されます。

chrome.tabs.getCurrent( function(tab){
    console.log(tab);
} );

私は documentation を見てきましたが、私の知る限り、コードはそれが言うことと一致しているようです。

32
Tom

試してください:

chrome.tabs.getSelected(null, function(tab){
    console.log(tab);
});
19
serg

メソッドgetSelected()は、Google Chrome 16(しかし、公式ドキュメントの多くの記事はまだ更新されていませんでした)以降廃止されました。) 公式メッセージはこちら 。指定されたウィンドウで選択されているタブを取得するには、引数$ {'active': true}_を指定してchrome.tabs.query()を使用します。これで、次のようになります。

_chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
  console.log(tabs[0]);
});
_
88

非タブコンテキスト(たとえば、背景ページやポップアップビュー)から呼び出された場合、未定義になる可能性があります。

このコードはbg.jsではなくcs.jsで使用する必要があるようです。

0
Jk L.