观察以突出显示



是否可以使用 nsISelectionController 来监视何时进行突出显示/选择?

我知道有不同的选择范围。我想观察用户何时在MXR - nsISelectionController Constants中看到的默认范围内进行选择。

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

谢谢

我找到了一个解决方案,但它没有像@Neil在SO主题中推荐的那样使用nsIController 这里查看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);

超时很重要,否则它会减慢浏览器线程的速度。 当你突出显示它的所有吉米奇时,你可以看到。 viewSource.js使用了100ms,所以我会重新推荐它。

MXR - 查看源.js

最新更新