我使用 Add-on Builder & SDK 来开发 Firefox 插件。当用户通过片段选择一段文本时,我捕捉到该事件:
var selection = require("sdk/selection");
selection.on('select', function () {
//Doing something
});
但是,当用户不再选择该文本时,我还想要做其他事情,但我不知道该怎么做。任何人都可以帮助我吗?非常感谢。
我使用 Add-on Builder & SDK 来开发 Firefox 插件。当用户通过片段选择一段文本时,我捕捉到该事件:
var selection = require("sdk/selection");
selection.on('select', function () {
//Doing something
});
但是,当用户不再选择该文本时,我还想要做其他事情,但我不知道该怎么做。任何人都可以帮助我吗?非常感谢。
我不知道是否有关于取消选择文本的事件。
但是,您可以在包含该文本的 body 或 div 上注册鼠标单击事件,然后在事件的回调函数中,您可以检查当前是否选择了最后选择的文本。
var selection = require("sdk/selection");
var lastText;
function addSelection(){
var selection = false;
var body = document.body;
if(!selection.text){
//deselection
//remove DOM listeners
body.removeListener('click', addSelection);
}
if (!selection.isContiguous) {
for (var subselection in selection) {
if(subselection.text == lastText){
selection = true;
}
}
} else if(selection.text && selection.text == lastText){
selection = true;
}
if(!selection){
//deselected
//remove DOM listeners
}
}
selection.on('select', function () {
var body;
if(lastText !== selection.text){
//deselected
//remove listeners
};
lastText = selection.text;
body = document.body;
//add DOM listeners like click - that can potentially remove selection
body.addEventListener('click', addSelection);
});