0

ユーザーがポップアップからクエリを入力したときに結果ページを表示するクロムの拡張機能を作成しています。後続のクエリで、新しい結果ページを開くのではなく、既存の結果ページを使用したいと考えています。

以前chrome.extension.getViews({'type':'tab'})は、現在開いている拡張ページを取得し、開いているページの JavaScript 関数にクエリを渡していました。

私が抱えている問題は、「タブ」権限を必要とせずにそのページに切り替えることです。

このコード スニペットは、バックグラウンド ページから適切に機能します。

chrome.tabs.getCurrent(function(tab){
    chrome.tabs.update(tab.id, {selected: true});
});

ただし、tabs.getCurrent には「タブ」権限が必要です。タブ権限なしでこれを行う方法はありますか?

使用できますchrome.tabs.updateが、から返されたビュー オブジェクトからタブ ID を取得する方法がわかりませんchrome.extension.getViews

4

2 に答える 2

1

tabsこれは許可なしではできないと確信しています。chrome.tabs.updateそれが必要な機能であることを正しく識別しましたが、権限がないと、タブ ID 引数を提供することによって、現在選択されtabsているタブでのみ操作できます。許可なくタブ ID を提供することはできないため、タブを切り替えることはできません。nullchrome.tabs.update

于 2012-06-21T22:43:05.010 に答える
0

/ edit:appsilersが述べたように、実際には実行可能ではありません。

代わりにを使用chrome.tabs.create()して必要なタブを開くことができる場合は、作成時にタブIDも返します。

それ以外の場合、唯一の方法は、ターゲットコンテキスト内にグローバルを配置し、を使用chrome.extension.getViews()してターゲットを識別し、のようなフォーカススティーリング関数を呼び出すことalert()です。ただし、これはハックのようなものであり、この機能がビルド間で安定しているという保証はないため、お勧めしません。

于 2012-06-21T22:27:18.213 に答える