Google Chromeの拡張機能APIで任意のウィンドウをアクティブにするにはchrome.windows.update
を用いる。
jQueryのDeferredに対応させて実装させると次のような感じ。
function activateWindow(windowId) {
var dfd = $.Deferred();
chrome.windows.update(windowId, { focused : true }, function(win) {
dfd.resolve();
});
return dfd.promise();
}
ただし、このままだとwindowId
が存在しないとエラーになってresolve
されないので、windowId
は事前に確認したほうがいい。
あとtabがわかっているときはchrome.tabs.update
でできそうな気もするがこちらはウィンドウ内でタブをアクティブにすることしかできないので、上記のchrome.windows.update
にtab.windowId
を渡して実行する必要がある。