是否可以使用 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