## 概要
[[拡張機能アイコン (Chrome Extension)|拡張機能アイコン]]を押したとき、メニューやポップアップではなく、新しいタブで[[Chrome Extension]]用のページを開きたい。
## やり方
まず、[[wxt.config.ts]]の`manifest.action`を設定する。値は空オブジェクトで問題ない。
```ts
export default defineConfig({
manifest: {
action: {},
},
});
```
> [!error] Service worker registration failed
> この設定を忘れると以下のエラーになる。
>
> ![[Pasted image 20240412001441.png]]
`entrypoints/background.ts`の`defineBackground`で[[拡張機能アイコン (Chrome Extension)|拡張機能アイコン]]クリック時の処理を記述する。
```ts
export default defineBackground(() => {
// アイコンクリック時の処理
browser.action.onClicked.addListener(() => {
browser.tabs.create({ url: browser.runtime.getURL("/top.html") });
});
```
`browser.runtime.getURL(...)`でChrome拡張内のページURLを生成できる。
再読み込み後にエラーが出なければおそらくOK。[[拡張機能アイコン (Chrome Extension)|拡張機能アイコン]]をクリックして新しいタブに指定したページが開かれるはず。