iT邦幫忙

DAY 5
2

Chrome Extension 開發筆記系列 第 5

Chrome Extension 筆記(05)取得所有分頁(TAB)訊息

  • 分享至 

  • xImage
  •  

這篇開始介紹 Chrome 相關的 API,
首先分享最常接觸到的 TAB 相關操作.

manifest.json

{
   "manifest_version": 2,
   "name": "ironman6",
   "version": "1.0",
   "browser_action": {
      "default_popup": "index.html"
   },
	"permissions": [
		"tabs"
	]
}

index.html

		<title>ironman6</title>
		<style>body {width: 500px ;} .icon {width: 16px; height: 16px;}</style>
	
	
		<button id="createTab">CreateTab ( http://ithelp.ithome.com.tw/ironman6/ )</button>
		<div id="output">Loading</div>
		<script src="app.js"></script>
	

app.js

document.addEventListener('DOMContentLoaded', function () {
	document.querySelector('#createTab').addEventListener('click', createTab);
	getTabs();
});

function getTabs(){
	chrome.tabs.query({}, function(result){
		var output = [];
		for (var i = 0; i < result.length; i++){
			var url   = result[i].url;
			var icon  = result[i].favIconUrl;
			var title = result[i].title;
			output.push('<p>');
			output.push('<img class="icon" src="' + icon + '"/>');
			output.push('<a href="' + url + '">' + title + '</a>');
			output.push('</p>');
		}
		document.querySelector('#output').innerHTML = output.join('');
	});
}

function createTab(){
	chrome.tabs.create({url: 'http://ithelp.ithome.com.tw/ironman6/'}, function(result){
		console.dir(result);
	});
}

值得注意的是 chrome.tabs.create 及 chrome.tabs.update 不需要要求 tabs 權限也能使用,
這對於 Chrome Extension 寫成 Web app 的開發者會很方便,
可以直接在新分頁上呈現自己的內容, 而不用局限於 popup 視窗裡.

下面是我常用的做法
index.html 裡放真正要跑的程式, 在 popup 的部份只做類似跳轉的動作
popup.html

<script src="popup.js"></script>

popup.js

chrome.tabs.create({url:chrome.extension.getURL("index.html")});

上一篇
Chrome Extension 筆記(04)跨域後的練習, 讀取 RSS
下一篇
Chrome Extension 筆記(06)可同步的離線儲存
系列文
Chrome Extension 開發筆記27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言