0

Add-on Builder & SDK を使用して Firefox アドオンを開発しています。ユーザーがスニペットでテキストを選択すると、イベントをキャッチします。

var selection = require("sdk/selection");
selection.on('select', function () {
//Doing something
});

ただし、ユーザーがそのテキストを選択しなくなったときに他のことをしたいのですが、その方法がわかりません。誰でもこれで私を助けることができますか?どうもありがとうございました。

4

1 に答える 1

1

テキストの選択解除に関するイベントがあるかどうかはわかりません。

ただし、そのテキストを含む 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);
 });
于 2013-07-08T07:54:55.460 に答える