是否可以使用nsISelectionController观察何时进行突出显示/选择?
我知道有不同的选择范围。我希望观看用户在MXR - nsISelectionController Constants看到的默认范围内进行选择。
有点像选择更改时的addEventListener,但在文档的文本节点上。
由于
答案 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所以我会重新推荐。