第八部分 — UI 表面 options 页面模式

18.1 目的

选项是您持久化设置的用户界面。 与弹出窗口不同,它们可以是一个真正的页面,具有导航和帮助文本。

18.2 使用场景 / 避免使用场景

使用场景: 当你需要让用户能够编辑和再次访问的设置时, 或者需要一个帮助文本/隐私说明的地方。

避免使用场景: UI 真正微小且短暂(弹出窗口可能就足够了),或 你需要一个持久化的工具界面(考虑使用侧边栏)。

18.3 options_page vs options_ui (快速映射)

  • options_page: 以普通标签页/页面的形式打开。

  • options_ui: 可嵌入到 chrome://extensions 中(如果 open_in_tab: false)。

如果你不确定:使用 options_page(更简单的心理模型)。

18.4 最小化模式:加载默认设置 + 保存

options.js: CODE_BLOCK_71

18.5 检查列表

  • \] 始终使用默认值加载

  • \] 显示清晰的"已保存"状态

一个最小化的 MV3 安全异步消息处理器(适合作为模板):

javascript 复制代码
chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
  (async () => {
    if (msg?.type !== "PING") return;
    sendResponse({ ok: true });
  })().catch((err) => sendResponse({ ok: false, error: String(err) }));
  return true; // keep channel open for async
});

18.6 常见问题

  • 频繁向 sync 写入(配额限制)

  • 存储密钥(不要)

18.7 参考资料

相关推荐
apollowing11 小时前
Avalonia UI 12.0.0 正式发布:架构演进和性能飞跃
ui·架构
oioihoii11 小时前
OpenClaw桌面 UI 自动化中的 Token 消耗问题几种可能的优化方向
运维·ui·自动化
qq_4523962313 小时前
第九篇:《处理常见复杂UI组件:下拉框、弹窗、iframe、多窗口》
ui
深蓝海拓13 小时前
Qt:创建一套基于HSL颜色体系的颜色库
笔记·python·qt·学习·ui
for_ever_love__13 小时前
UI学习:反向传值(代理传值)深入学习
学习·ui·objective-c
Cho1yon14 小时前
【AI Agent 第十期:基于 scrcpy + PyTorch 的车载系统多屏自动化测试工具开发】
人工智能·pytorch·ui·车载系统·自动化
我家媳妇儿萌哒哒14 小时前
Element ui el-dialog 在一个有滚动条的页面,打开一个弹框,完了再打开一个弹框后,滚动条可以滚动,怎么限制不能滚动。
前端·vue.js·ui
ZC跨境爬虫15 小时前
Apple官网复刻第二阶段day_3:(还原苹果官网iPhone顶部标准文案区块,一次编写全局复用)
前端·css·ui·html·iphone
ZC跨境爬虫15 小时前
Apple官网复刻第二阶段day_2:(前端模块化还原苹果官网WATCH海报)
前端·ui·重构·html·状态模式
Wild API15 小时前
GPT Image 2测评总结:文本渲染、UI生成、角色一致性与提示词模板
gpt·ui