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!

questionAnswers(6)

yourAnswerToTheQuestion