【问题标题】:Observe for highlight?观察亮点?
【发布时间】:2014-03-06 06:02:43
【问题描述】:
【问题讨论】:
标签:
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