我很好奇是否有人知道如果/一旦用户完成在网页上选择文本,我将如何触发函数运行?我希望用户能够选择文本,并在短暂延迟(或立即,此时无关紧要)后,在用户可以单击的文本附近出现一个覆盖按钮,然后我返回并运行更多基于选择的代码。这是用于 Firefox 扩展。
我能想到的一个类似示例就像在 IE 中,您可以在其中选择文本,然后它会显示“网络加速器”。我 99% 确定我知道我将如何实际覆盖按钮并获取所选文本的位置,但我不知道如何检查是否有任何选择,而不进行某种无限循环,这只是似乎是一个可怕的想法。
编辑:
//In my overlay.js with the rest of my sidebar code
isTextSelected: function () {
var myText = cqsearch.getSelectedText();
var sidebar = document.getElementById("sidebar");
var sidebarDoc = sidebar.contentDocument || document;
var curHighlightedDiv = sidebarDoc.getElementById("testDiv");
curHighlightedDiv.innerHTML = "Current text selection:" + myText;
}
};
//In my on firefox load function I added this
document.onmouseup = cqsearch.isTextSelected;
所以这就是我使用罗伯特的建议提出的,我花了一些时间把所有东西都放在正确的位置,但效果很好!现在来定位我的按钮。