javascript – 文本高亮事件?

我很好奇,如果有人知道我将如何触发一个功能运行如果/一旦用户完成选择网页上的文本?我希望用户能够选择文本,并在短暂的延迟后(或立即,在这一点上没有关系),一个重叠按钮出现在文本附近,然后用户可以点击,我回去并运行更多的我的代码是基于选择。这是一个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;

所以这是我使用罗伯特的建议,我花了一些时间让所有的东西在正确的地方,但它的工作伟大!现在打开我的按钮。万分感谢!

没有任何onighighextext或类似的东西,但解决方案是绑定onmouseup检查是否选择了任何文本,如果这不是在输入/ textarea。

编辑

这里有一个实现示例。我只在Chrome / Firefox / IE7测试这个。这也在输入中工作。

http://jsfiddle.net/qY7gE/

代码从JSFiddle

var t = '';
function gText(e) {
    t = (document.all) ? document.selection.createRange().text : document.getSelection();

    document.getElementById('input').value = t;
}

document.onmouseup = gText;
if (!document.all) document.captureEvents(Event.MOUSEUP);
<input type='text' id='input' />
In software, a stack overflow occurs when too much memory is used on the call stack. The call stack contains a limited amount of memory, often determined at the start of the program. The size of the call stack depends on many factors, including the programming language, machine architecture, multi-threading, and amount of available memory. When too much memory is used on the call stack the stack is said to overflow, typically resulting in a program crash.[1] This class of software bug is usually caused by one of two types of programming errors.[2]
http://stackoverflow.com/questions/3731328/on-text-highlight-event

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – 文本高亮事件?