chrome拡張機能:オプションページの様な自作ページをタブで開く


拡張内にファイルを配置し、chrome.tabs.create()でurlにファイル名を指定するだけ。manifest.jsonへの記載も不要。

background.js
chrome.tabs.create({url: 'custom_page.html'}, tab => {});

自作ページでスクリプトを読み込むには、オプションページ同様script要素で読み込めばいい。

custom_page.html
<script src="custom_page.js"></script>

ただし、chrome.tabs.create()のコールバック関数内でchrome.tabs.sendMessage()を実行しても、まだタブ側のスクリプトが読み込まれていないのでメッセージは受信できない。なので、必要な情報はタブを開く前にlocalStorageに保存しておき、自作ページでそれを読み込む形にした。

background.js
localStorage.aaa = 'aaa';
chrome.tabs.create({url: 'custom_page.html'}, tab => {});
custom_page.js
let aaa = localStorage.aaa;