我很好奇是否有人知道一旦用户完成选择网页上的文本后如何触发函数运行?我希望用户能够选择文本,并且在短暂的延迟后(或立即,此时无所谓),文本附近会出现一个叠加按钮,用户可以单击该按钮,然后我返回并运行我的更多基于选择的代码。这是用于Firefox扩展。
我能想到的一个类似示例就像在IE中一样,您可以在其中选择文本,然后显示“ Web加速器”。我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;
因此,这就是我根据罗伯特的建议得出的,我花了一些时间将所有内容都放在正确的位置,但是效果很好!现在定位我的按钮。
.select()
- api.jquery.com/select