【问题标题】:Observe for highlight?观察亮点?
【发布时间】:2014-03-06 06:02:43
【问题描述】:

是否可以使用 nsISelectionController 来观察何时进行高亮/选择?

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

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

谢谢

【问题讨论】:

    标签: events firefox-addon selection xpcom selectionchanged


    【解决方案1】:

    我找到了一个解决方案,但它没有像@Neil 在 SO 主题 HERE 中推荐的那样使用 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 使用了 100 毫秒,所以我会重新建议。

    MXR - viewSource.js

    【讨论】:

      猜你喜欢
      • 2019-03-12
      • 1970-01-01
      • 2012-06-27
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 2015-11-29
      相关资源
      最近更新 更多