브라우저 확장 프로그램 - 사용자 지정 옵션 페이지
14024 단어 beginnershtmljavascriptwebdev
지금까지 기본 팝업 보기를 사용했지만 브라우저 옵션 메뉴를 활용할 수도 있습니다.
이것은 확장 옵션을 정리하는 깔끔한 트릭이며, 이 기사에서는 이를 달성하는 방법을 보여 드리겠습니다.

기사를 따라가려면 다음GitHub branch을 시작점으로 삼으십시오.
브라우저 확장에 옵션 추가
확장과 관련된 모든 것과 마찬가지로 먼저 매니페스트 파일에 옵션 메뉴를 등록해야 합니다.
manifest.json
파일을 열고 다음 구성을 추가합니다.{
"options_ui": {
"page": "options.html",
"open_in_tab": false
}
}
이렇게 하면 우리가 호출하는 옵션 화면
options.html
이 등록되고 새 탭을 열지 않도록 지시합니다. (팝업에서 열립니다).이 옵션 파일은 새 앱이 되어 기존 앱과 별도로 실행됩니다.
프로젝트의
options.html
파일을 만들고 다음 코드를 추가합니다.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>DDT Pop-up</title>
<link rel="stylesheet" type="text/css" href="./css/style.css" />
</head>
<body>
<div id="options"></div>
<script type="module" src="src/options/index.jsx"></script>
</body>
</html>
계속해서 src 디렉토리에 이 옵션 폴더를 만들고 내부에
index.jsx
파일을 만듭니다.import ReactDOM from 'react-dom';
import { App } from './App';
const app = document.getElementById('options');
ReactDOM.render(<App />, app);
보시다시피 이것은 또 다른 React 부트스트랩 파일입니다. 계속해서 옵션
App.jsx
파일을 생성해 보겠습니다.import { useState } from 'react';
export function App() {
const [color, setColor] = useState('indigo');
chrome.storage.sync.get('color', (storedColor) => {
setColor(storedColor.color);
});
const pickColor = (pickedValue) => {
setColor(pickedValue);
chrome.storage.sync.set({ color: pickedValue });
window.close();
};
return (
<div className='m-4'>
<select
onChange={(event) => pickColor(event.target.value)}
value={color}
className='block w-full p-4 text-sm text-gray-900 border border-gray-300 rounded-lg bg-gray-50 focus:ring-indigo-500 focus:border-indigo-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-indigo-500 dark:focus:border-indigo-500'
>
<option>Pick a color</option>
<option value='indigo'>Indigo</option>
<option value='pink'>Pink</option>
<option value='purple'>Purple</option>
<option value='red'>Red</option>
</select>
</div>
);
}
이 코드는 기본
App.jsx
파일에서 가져왔으므로 여기에서 선택 옵션을 제거하십시오.Vite 구성에 이 새 진입점을 등록해야 하므로 Vite는 두 개의 파일을 만들어야 한다는 것을 알고 있습니다.
vite.config.js
파일을 열고 다음 구성을 넣습니다.import { defineConfig } from 'vite';
const { resolve } = require('path');
import react from '@vitejs/plugin-react';
export default defineConfig({
plugins: [react()],
build: {
rollupOptions: {
input: {
main: resolve(__dirname, 'index.html'),
options: resolve(__dirname, 'options.html'),
},
},
},
});
이제 Vite는 그것이 다중 앱 프로젝트라는 것을 알고 있습니다.
마지막으로 하고 싶은 일은 이제 하위 폴더를 사용할 때
tailwind.config.js
파일을 수정하는 것입니다./** @type {import('tailwindcss').Config} */
module.exports = {
// Old
content: ['src/*.jsx'],
// New
content: ['src/**/*.jsx'],
};
그리고 그게 다야. 이제 계속해서 애플리케이션을 빌드할 수 있습니다.
이제 사용자는 옵션 메뉴를 통해 색상을 수정할 수 있습니다.

여기에서 전체 코드를 찾을 수 있습니다GitHub branch.
읽어주셔서 감사합니다. 연결합시다!
제 블로그를 읽어주셔서 감사합니다. 내 이메일 뉴스레터를 구독하고 Facebook에 연결하거나
Reference
이 문제에 관하여(브라우저 확장 프로그램 - 사용자 지정 옵션 페이지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dailydevtips1/browser-extensions-custom-options-page-5b3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)