Пытаясь снова и снова очистить локальное хранилище моего браузера, я подумал, почему бы не автоматизировать мой браузер для этого? Я ведь разработчик, и за каждую минуту, потраченную вручную, я должен часами пытаться это автоматизировать!!
Шучу, это займет всего минуту.
Расширения Chrome позволяют нам запускать сценарии для выполнения множества действий, таких как изменение CSS, воспроизведение медиафайлов, настройка тем браузера и многое другое.
Моя цель — очистить локальное хранилище браузера с помощью этого расширения. Скажем, у меня уже есть мой ключ в хранилище, как показано ниже,
и мне нужно удалить этот мой ключ с помощью расширения.
Настраивать
Количество файлов, необходимых для разработки расширения, на удивление меньше. Начнем с создания пустой папки с именем my-extension
.
После этого первое, что мы должны сделать, это добавить файл manifest.json
.
{ "name": "Clear Local Storage", "description": "Deletes local storage items", "version": "1.0", "manifest_version": 3 }
Файл манифеста управляет метаданными проекта. Всем расширениям нужен файл манифеста.
Скрипт
Затем добавьте файл сценария popup.js
, который удалит элементы локального хранилища, используя существующие API-интерфейсы JavaScript на стороне браузера.
function clearTokens() { window.localStorage.removeItem('my-key'); }
Здесь ничего особенного, вы можете попробовать эту же функцию в браузере, вызвав консоль (F12).
UI
Теперь давайте добавим пользовательский интерфейс. Для этого создайте файл popup.html
.
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="button.css"> </head> <body> <button id="clear">Clear</button> <script src="popup.js"></script> </body> </html>
Мы добавили сюда кнопку вместе с тегом сценария, в котором упоминается сценарий, который мы только что написали. По сути, при нажатии этой кнопки нам нужно выполнить скрипт. Мы также упомянули файл css на случай, если нам понадобится какой-то стиль.
Изменениеpopup.js
let clearButton = document.getElementById("clear"); clearButton.addEventListener("click", async () => { let [tab] = await chrome.tabs.query({ active: true, currentWindow: true }); chrome.scripting.executeScript({ target: { tabId: tab.id }, function: clearTokens, }); }); function clearTokens() { window.localStorage.removeItem('my-key'); }
Сначала мы добавляем на кнопку прослушиватель кликов, затем с помощью chrome API узнаем активную вкладку пользователя и затем выполняем скрипт только для этой активной вкладки, так как мы не хотим выполнять это расширение на каждой вкладке.
Разрешения
Большинство API необходимо зарегистрировать в поле "permissions"
в манифесте, чтобы расширение могло их использовать. Мы использовали API tabs
и scripting
.
{ "name": "Clear Local Storage", "description": "Deletes local storage items", "version": "1.0", "manifest_version": 3, "permissions": [ "activeTab", "scripting" ] }
Действия
Чтобы определить, что происходит, когда мы нажимаем на расширение, мы используем поле actions
в файле манифеста. В нашем случае мы хотим показать файл popup.html
при загрузке.
{ "name": "Clear Local Storage", "description": "Deletes local storage items", "version": "1.0", "manifest_version": 3, "permissions": [ "activeTab", "scripting" ], "action": { "default_popup": "popup.html" } }
Импортировать
Теперь пришло время протестировать расширение!
Откройте вкладку расширений, например chrome://extensions/
. Нажмите «Загрузить распакованное».
Укажите на папку (в нашем случае my-extension
), содержащую 3 файла, которые мы только что написали.
Теперь расширение должно быть загружено!
Перейдите к google.com
, где мы ранее добавили my-key
в локальное хранилище, и нажмите кнопку расширения на панели инструментов вверху.
и вуаля, наше локальное хранилище очищено!
Вот и все. Ты теперь волшебник. Спасибо за прочтение !