# Youtube blocker ###### tags: `Javascript` `Youtube` `trace code` ## [blocktube](https://github.com/amitbl/blocktube) 用 `chrome.storage` 來儲存使用者設定,`content_script.js` 跟 `background.js` 透過 `chrome.runtime.connect` 建立 port 來溝通。 這裡有個疑惑,為什麼要 runtime 才去 load `inject.js`? ```javascript inject() { const s = document.createElement('script'); s.src = chrome.extension.getURL('src/scripts/inject.js'); s.onload = events.ready; s.async = false; (document.head || document.documentElement).appendChild(s); }; // manifest.json { "web_accessible_resources": ["src/scripts/inject.js"], } ``` ## [YouTube-Blocker](https://github.com/eric60/YouTube-Blocker) 有流程圖真的是容易理解很多,不過這個需要有自己的 API key,使用者也相對少。 ![](https://i.imgur.com/iAjMtJ1.png)