2014-03-06 73 views

回答

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); 

超時很重要,因爲否則會在瀏覽器線程放緩。你可以看到你突出它的所有噱頭。 viewSource.js使用了100ms,所以我會重新考慮。

MXR - viewSource.js