11

開いているすべてのタブを取得し、それらを Chrome の配列に並べ替える方法はありますか? したがって、Gmail と YouTube が開いている場合、配列には "gmail.com" と "youtube.com" という 2 つのエントリがあります。

4

2 に答える 2

8

はい、これを行う方法は次のとおりです。

注:これには、マニフェスト ファイルで指定する権限「タブ」が必要です。

chrome.windows.getAll({populate:true}, getAllOpenWindows);

function getAllOpenWindows(winData) {

  var tabs = [];
  for (var i in winData) {
    if (winData[i].focused === true) {
        var winTabs = winData[i].tabs;
        var totTabs = winTabs.length;
        for (var j=0; j<totTabs;j++) {
          tabs.push(winTabs[j].url);
        }
    }
  }
  console.log(tabs);
}

この例では、配列で要求したようにタブの URL を追加していますが、各「タブ」オブジェクトにはさらに多くの情報が含まれています。Url は完全な URL で、正規表現を適用して URL からドメイン名を抽出できます。

于 2012-08-11T19:02:17.503 に答える
5

プラグインを作成している場合を除き、特にタブに別のドメインのコンテンツが含まれている場合は、開いているタブの名前をすべて取得する方法を私は知りません。そんなことができたら、かなりのセキュリティ問題になる可能性があります。

ここで Chrome のドキュメントを確認できます: http://developer.chrome.com/extensions/devguide.html

于 2012-08-11T14:18:04.540 に答える