介紹
官方文件
請先看基本 Add-on 製作方法
要顯示一個跳出視窗介面,你要使用 panel 模組
首先 index.js 程式碼如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| var data = require("sdk/self").data;
var text_entry = require("sdk/panel").Panel({ contentURL: data.url("text-entry.html"), contentScriptFile: data.url("get-text.js") });
require("sdk/ui/button/action").ActionButton({ id: "show-panel", label: "Show Panel", icon: { "16": "./icon-16.png", "32": "./icon-32.png", "64": "./icon-64.png" }, onClick: handleClick });
function handleClick(state) { text_entry.show(); }
text_entry.on("show", function() { text_entry.port.emit("show-happen"); });
text_entry.port.on("text-entered", function (text) { console.log(text); text_entry.hide(); });
|
在 data 資料夾建立 get-text.js,程式碼如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
var textArea = document.getElementById("edit-box");
textArea.addEventListener('keyup', function onkeyup(event) { if (event.keyCode == 13) { text = textArea.value.replace(/(\r\n|\n|\r)/gm,""); self.port.emit("text-entered", text); textArea.value = ''; } }, false);
self.port.on("show", function onShow() { textArea.focus(); });
|
最後在 data 中建立 text-entry.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <html> <head> <style type="text/css" media="all"> textarea { margin: 10px; } body { background-color: gray; } </style> </head> <body> <textarea rows="13" cols="33" id="edit-box"></textarea> </body> </html>
|