在做contentWindow.getSelection之前,你有鼠标事件监听器吗?
如果你这样做,你可以通过执行获得所选择的节点:
function onMouseUp(event) {
var aWindow = event.target.ownerDocument.defaultView;
// should test if aWindow is chrome area or actually content area
var contentWindow = aWindow.document instanceof Ci.nsIHTMLDocument ? aWindow : null; // i guessed here but testing if its content window is done in some similar way
if (!contentWindow) { return }
// do contentWindow.getSelection im not familiar with the code, if selection exists // check if more then one range selected then get node for each, however im going to assume only one range is selected
var nodeOfFirstRange = event.explicitOriginalTarget
var elementOfNode = nodeOfFirstRange.parentNode;
var htmlOfElement = elementOfNode.innerHTML;
}
Services.wm.getMostRecentWindow('navigator:browser').gBrowser.addEventListener('mouseup');
问题与此代码是,如果用户在内容窗口将鼠标下来,然后亮点和mouseup当鼠标内容窗口之外,像铬窗口,甚至外部浏览器(如果浏览器窗口不是最大的,或者如果在os等任务栏中的用户mousedup),所以只是使用此代码作为指导