观察突出显示?

时间:2014-03-06 06:02:44

标签: events firefox-addon selection xpcom selectionchanged

是否可以使用nsISelectionController观察何时进行突出显示/选择?

我知道有不同的选择范围。我希望观看用户在MXR - nsISelectionController Constants看到的默认范围内进行选择。

有点像选择更改时的addEventListener,但在文档的文本节点上。

由于

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,但它没有使用nsIController,正如@Neil在SO主题HERE中建议的那样来查看viewSource.js。

如果可能的话,我仍然对nsIController解决方案感兴趣,我试图理解它让我困惑的傻瓜。

所以这就是你观察选择的方式:

 var mylis = {
   timeout: 0,
   notifySelectionChanged: function(doc, sel, reason)
   {
       if (!this.timeout) {
           this.timeout = setTimeout(function() {
               console.log('notifySelectionChanged','doc=',doc,'sel=',sel,'reason=',reason);
               mylis.timeout = 0;
           }, 1000);
       }
   }
 }

gBrowser.contentWindow.getSelection().QueryInterface(Ci.nsISelectionPrivate).addSelectionListener(mylis);

//gBrowser.contentWindow.getSelection().QueryInterface(Ci.nsISelectionPrivate).removeSelectionListener(mylis);

超时很重要,否则会降低浏览器线程的速度。你可以看到你突出它的所有gimicky。 viewSource.js使用了100ms所以我会重新推荐。

MXR - viewSource.js