火狐SDK |插件开发
Firefox SDK | Add-on Development
这里有哪位 firefox-sdk 天才,谁能帮我解决这个问题。单击按钮后事件不会被分叉。我正在 Firefox 45
上尝试这个
我在 main.js
中有此代码
// capture toggle button event
function startCreation(e){
// function to call when panel is shown to user
if (e == "show"){
//console.log("event " + e + " was emitted");
panel.port.emit("show");
}
// function to call when panel gets interacted by user input
panel.port.on("text-entered", function (text) {
console.log(text);
panel.hide();
});
}
// let's create a panel to be shown on button toggeling.
var panel = panels.Panel({
contentURL: self.data.url("./panel.html"),
onHide: handleHide,
contentScriptFile: [self.data.url("getTask.js"), self.data.url("jquery.js")],
contentStyleFile: self.data.url("panel-style.css")
});
将端口放在getTask.js下保存数据,如下
self.port.on("show", function() {
var _create_task = document.getElementById("create_task");
var _task_id = document.getElementById("task_id").value;
_create_task.addEventListener('click', function() {
_text = _task_id.value.replace(/(\r\n|\n|\r)/gm,"");
_task_id.value=''
self.port.emit("text-entered", _text);
}, false);
});
此外,panel.html 中的 html 应该会触发事件
<!DOCTYPE HTML>
<html>
<head>
<link href="panel-style.css" type="text/css" rel="stylesheet">
<script src="getTask.js"></script>
</head>
<body>
<table align="center">
<tr>
<td>
<input type="text" id="task_id" name="task_id" value="Enter something"/>
</td>
<td>
<input type="button" id="create_task" name="create_task" value="Create Task"/>
</td>
</tr>
</body>
</html>
我不确定,哪一部分在这里制造麻烦。希望这次能说清楚。我将不胜感激任何指导。
提前致谢。
没关系,我可以自己解决。
有两个对象引用相同的 "port.emit" 和 "port.on" 调用。我不得不删除其中一个,瞧,它起作用了,但感谢所有不在乎的人来找我。
感谢您的宝贵时间。 :)
这里有哪位 firefox-sdk 天才,谁能帮我解决这个问题。单击按钮后事件不会被分叉。我正在 Firefox 45
上尝试这个我在 main.js
中有此代码// capture toggle button event
function startCreation(e){
// function to call when panel is shown to user
if (e == "show"){
//console.log("event " + e + " was emitted");
panel.port.emit("show");
}
// function to call when panel gets interacted by user input
panel.port.on("text-entered", function (text) {
console.log(text);
panel.hide();
});
}
// let's create a panel to be shown on button toggeling.
var panel = panels.Panel({
contentURL: self.data.url("./panel.html"),
onHide: handleHide,
contentScriptFile: [self.data.url("getTask.js"), self.data.url("jquery.js")],
contentStyleFile: self.data.url("panel-style.css")
});
将端口放在getTask.js下保存数据,如下
self.port.on("show", function() {
var _create_task = document.getElementById("create_task");
var _task_id = document.getElementById("task_id").value;
_create_task.addEventListener('click', function() {
_text = _task_id.value.replace(/(\r\n|\n|\r)/gm,"");
_task_id.value=''
self.port.emit("text-entered", _text);
}, false);
});
此外,panel.html 中的 html 应该会触发事件
<!DOCTYPE HTML>
<html>
<head>
<link href="panel-style.css" type="text/css" rel="stylesheet">
<script src="getTask.js"></script>
</head>
<body>
<table align="center">
<tr>
<td>
<input type="text" id="task_id" name="task_id" value="Enter something"/>
</td>
<td>
<input type="button" id="create_task" name="create_task" value="Create Task"/>
</td>
</tr>
</body>
</html>
我不确定,哪一部分在这里制造麻烦。希望这次能说清楚。我将不胜感激任何指导。
提前致谢。
没关系,我可以自己解决。
有两个对象引用相同的 "port.emit" 和 "port.on" 调用。我不得不删除其中一个,瞧,它起作用了,但感谢所有不在乎的人来找我。
感谢您的宝贵时间。 :)