前回Google Chromeのアイコンをクリックでアラートを出すだけ拡張機能(アドオン)の作り方を書きましたが、今回はタブに対して操作する拡張機能を記します。
左側のタブを閉じる拡張機能の作成方法
Google Chromeのタブを右クリックして出したメニューに「他のタブを閉じる」や「右側のタブを閉じる」がありますが「左側のタブを閉じる」がありませんので、今回はこれ実行する拡張機能を作ります。
■「manifest.json」の作成
<strong>manifest.json</strong> { "name": "左側のタブを閉じる", "version": "1.0.0", "manifest_version": 2, "description": "左側のタブを閉じる拡張機能", "icons": { "16":"icon16.png", "48":"icon48.png", "128":"icon128.png" }, "browser_action": { "default_icon": "icon16.png", "default_title": "左側のタブを閉じる" }, "background": { "scripts": [ "script.js" ] }, "permissions":[ // "tabs" ] }
“permissions” | 権限を与える項目です。 “tabs”が無くても可能でした。 |
前回作ったマニュフェストファイルにタブを操作する権限を追加します。
■「script.json」の作成
script.json
var baseWINDOW=0; var baseTAB=0; var script01 = function() { chrome.tabs.getSelected(null,function(tab) { baseTAB=tab.id; baseWINDOW=tab.windowId; }); chrome.windows.getAll(null,function(windows) { for (var i=0;i<windows.length;i++) { if(baseWINDOW==windows[i].id) { chrome.tabs.getAllInWindow(windows[i].id,function(tabs) { for (var j=0;j<tabs.length;j++) { if(baseTAB!=tabs[j].id) { chrome.tabs.remove(tabs[j].id); } else { break; } } }); } } }); }; (function() { chrome.browserAction.onClicked.addListener(script01); })();
chrome.tabs.getSelected | 現在アクティブなウインドウとタブの情報を取得します。 |
chrome.windows.getAll | 現在開いているウインドウの情報を取得します。 |
chrome.tabs.getAllInWindow | 現在開いているタブの情報を取得します。 |
chrome.tabs.remove | 指定したIDのタブを閉じます。 |
前回のアイコンが押された後にアラートを出現させる部分をタブを閉じる命令に変更します。
まずchrome.tabs.getSelectedで現在アクティブなウインドウとタブのIDを取得します。
このIDを持っているウインドウをchrome.windows.getAllで探し、そのウインドウの中からchrome.tabs.getAllInWindowで探して同じIDを持つタブまでをchrome.tabs.removeで閉じ、見つけたらbreakでループを抜けます。
実行結果
Chromeに登録したらメニューの左横に新しくアイコンが追加されます。
このアイコンを左クリックすれば現在アクティブなタブがあるウインドウの中の左側のタブを閉じます。