选项

为了让用户自定义您的扩展程序的行为,您可能会提供一个选项页面。如果这样做的话,选项页面的链接将会在扩展程序管理页面(chrome://extensions)中显示,单击“选项”链接打开一个新标签页,指向您的选项页面。

第一步:在清单文件中声明您的选项页面

manifest.json

  1. {
  2. "name": "我的扩展程序",
  3. ...
  4. "options_page": "options.html",
  5. ...
  6. }

第二步:编写您的选项页面

如下是一个选项页面的例子:

options.html

  1. <html>
  2. <head><title>我的测试扩展程序选项</title></head>
  3. <body>
  4. 我最喜欢的颜色:
  5. <select id="color">
  6. <option value="red"></option>
  7. <option value="green">绿</option>
  8. <option value="blue"></option>
  9. <option value="yellow"></option>
  10. </select>
  11. <br>
  12. <div id="status"></div>
  13. <button id="save">保存</button>
  14. </body>
  15. <script src="options.js"></script>
  16. </html>

options.js

  1. // 将选项保存在 localStorage 中。
  2. function save_options() {
  3. var select = document.getElementById("color");
  4. var color = select.children[select.selectedIndex].value;
  5. localStorage["favorite_color"] = color;
  6. // 更新状态,告诉用户选项已保存。
  7. var status = document.getElementById("status");
  8. status.innerHTML = "Options Saved.";
  9. setTimeout(function() {
  10. status.innerHTML = "";
  11. }, 750);
  12. }
  13. // 从保存在 localStorage 中的值恢复选定的内容。
  14. function restore_options() {
  15. var favorite = localStorage["favorite_color"];
  16. if (!favorite) {
  17. return;
  18. }
  19. var select = document.getElementById("color");
  20. for (var i = 0; i < select.children.length; i++) {
  21. var child = select.children[i];
  22. if (child.value == favorite) {
  23. child.selected = "true";
  24. break;
  25. }
  26. }
  27. }
  28. document.addEventListener('DOMContentLoaded', restore_options);
  29. document.querySelector('#save').addEventListener('click', save_options);