现在的位置: 首页 > 综合 > 正文

Chrome扩展开发指南(4)——Options Pages(选项页面)

2018年04月19日 ⁄ 综合 ⁄ 共 1538字 ⁄ 字号 评论关闭

Chrome扩展开发指南(4)——Options Pages(选项页面)

你可以提供一个选项页面(Options Pages)让用户自定义你的扩展。如果设置了选项页面,那么扩展管理页chrome://extensions将会有一个链接指向选项页面。

定义选项页面包括两步:

1、在manifest中定义选项页
  1. {
  2.   "name": "My extension",
  3.   ...
  4.   "options_page": "options.html",
  5.   ...
  6. }

复制代码

上例中,options_page代表选项页面,options.html是具体的文件地址。

2、编写选项页面

选项页面是一个典型的网页,下面是一个选项页面的例子:

  1. <html>
  2. <head><title>My Test Extension Options</title></head>
  3. <script type="text/javascript">

  4. // Saves options to localStorage.
  5. function save_options() {
  6.   var select = document.getElementById("color");
  7.   var color = select.children[select.selectedIndex].value;
  8.   localStorage["favorite_color"] = color;

  9.   // Update status to let user know options were saved.
  10.   var status = document.getElementById("status");
  11.   status.innerHTML = "Options Saved.";
  12.   setTimeout(function() {
  13.     status.innerHTML = "";
  14.   }, 750);
  15. }

  16. // Restores select box state to saved value from localStorage.
  17. function restore_options() {
  18.   var favorite = localStorage["favorite_color"];
  19.   if (!favorite) {
  20.     return;
  21.   }
  22.   var select = document.getElementById("color");
  23.   for (var i = 0; i < select.children.length; i++) {
  24.     var child = select.children[i];
  25.     if (child.value == favorite) {
  26.       child.selected = "true";
  27.       break;
  28.     }
  29.   }
  30. }

  31. </script>

  32. <body onload="restore_options()">

  33. Favorite Color:
  34. <select id="color">
  35. <option value="red">red</option>
  36. <option value="green">green</option>
  37. <option value="blue">blue</option>
  38. <option value="yellow">yellow</option>
  39. </select>

  40. <br>
  41. <button onclick="save_options()">Save</button>
  42. </body>
  43. </html>

复制代码

注意事项

早期版本的chrome可能不支持这个功能。

我们正计划提供一个默认的css来使得不同扩展的选项页面保持风格一致,你可以从这里(http://crbug.com/25317)查看最新的进展。

知识补充

上面的例子中使用LOCALSTORAGE保存数据,具体介绍可以查看《使用LOCALSTORAGE保存数据

抱歉!评论已关闭.