Evento de destaque de texto?
Estou curioso para saber se alguém ativaria uma função para executar se / uma vez que o usuário terminar de selecionar o texto na página da web? Gostaria que o usuário pudesse selecionar o texto e, após um pequeno atraso (ou imediatamente, neste momento, não importa muito), um botão de sobreposição aparece próximo ao texto no qual o usuário pode clicar e eu volto e corro mais do meu código que é baseado na seleção. Isto é para uma extensão do Firefox.
Um exemplo semelhante em que posso pensar seria como no IE, onde você pode selecionar o texto e, em seguida, exibir os "aceleradores da web". Tenho 99% de certeza de que sei como sobrepor o botão e obter a posição do texto selecionado, mas não tenho idéia de como verificar se há alguma coisa selecionada, sem fazer algum tipo de loop infinito, o que apenas parece uma péssima idéia.
Desde já, obrigado!
EDITAR:
//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;
Então é isso que eu sugeri usando a sugestão de Robert, e levei algum tempo para colocar tudo no lugar certo, mas funciona muito bem! Agora, para posicionar meu botão. Muito obrigado!