3

我尝试为 firefox (android 版本) 做扩展

当用户长按时,我需要选择文本。

我有这样的代码:

.....
Services.obs.addObserver(this, "Gesture:LongPress", false);
.....

observe: function(aSubject, aTopic, aData) {
    if (aTopic == "Gesture:LongPress") {
        var xw = this._xulWindow;
        var document = xw.BrowserApp.selectedBrowser.contentDocument;
        var selectedText = document.getSelection().toString();
        var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
                    .getService(Components.interfaces.nsIPromptService);
        prompts.alert(null, "ColorDict", selectedText);
    }
}
....

但我得到空警报。因为在 LongPress 处理程序完成后将选择单词。用户长按后如何获得选定的单词?

4

1 回答 1

1

这很有趣。我插入

Services.obs.addObserver(this, "*", false);

取而代之

Services.obs.addObserver(this, "Gesture:LongPress", false);

它有效!我看到所选单词的警报!

我将在文档中搜索原因。谢谢!

于 2012-10-05T19:11:23.493 回答