Google Chromeの左側のタブを閉じる拡張機能の作り方

この記事がお役に立てたならシェアしてくれると嬉しいです。

アドオン

前回Google Chromeのアイコンをクリックでアラートを出すだけ拡張機能(アドオン)の作り方を書きましたが、今回はタブに対して操作する拡張機能を記します。

スポンサーリンク

左側のタブを閉じる拡張機能の作成方法

Google Chromeのタブを右クリックして出したメニューに「他のタブを閉じる」や「右側のタブを閉じる」がありますが「左側のタブを閉じる」がありませんので、今回はこれ実行する拡張機能を作ります。

■「manifest.json」の作成
<strong>manifest.json</strong>
{
	"name": "右側のタブを閉じる",
	"version": "1.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に登録したらメニューの左横に新しくアイコンが追加されます。
add-on

このアイコンを左クリックすれば現在アクティブなタブがあるウインドウの中の左側のタブを閉じます。

スポンサーリンク

この記事がお役に立てたならシェアしてくれると嬉しいです。


最新記事の更新情報をお届けします。
関連コンテンツ

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)