javascript – jquery:选择文本事件

前端之家收集整理的这篇文章主要介绍了javascript – jquery:选择文本事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有可能当用户选择一些文本(非textarea或输入)时,jquery可以调用我的回调来让我知道选择了哪个div的文本,如果选择焦点丢失也会调用回调函数

谢谢.

解决方法

有点令人惊讶的是,没有简单的方法来做到这一点. IE有一个 select事件在所有元素上实现,但其他浏览器从未扩展到输入.您必须在整个文档上处理keyup和mouseup事件,即使如此,当选择没有实际更改时,您的回调也可能被调用.

2013年10月13日

WebKit浏览器已经支持Document节点上的selectionchange事件了几年. IE也支持这个事件回到版本5.5.例:

document.onselectionchange = function() {
    console.log("Selection changed");
};

这是一个简单的例子:

function selectCallback(selectionParentElement) {
    console.log("Selecting,parent element is " + selectionParentElement.nodeName);
}

var mouSEOrKeyUpHandler;

if (typeof window.getSelection != "undefined") {
    // Non-IE
    mouSEOrKeyUpHandler = function() {
        var sel = window.getSelection();
        if (sel.rangeCount > 0) {
            var range = sel.getRangeAt(0);
            if (range.toString()) {
                var selParentEl = range.commonAncestorContainer;
                if (selParentEl.nodeType == 3) {
                    selParentEl = selParentEl.parentNode;
                }
                selectCallback(selParentEl);
            }
        }
    };
} else if (typeof document.selection != "undefined") {
    // IE
    mouSEOrKeyUpHandler = function() {
        var sel = document.selection;
        if (sel.type == "Text") {
            var textRange = sel.createRange();
            if (textRange.text != "") {
                selectCallback(textRange.parentElement());
            }
        }
    };
}

document.onmouseup = mouSEOrKeyUpHandler;
document.onkeyup = mouSEOrKeyUpHandler;

猜你在找的jQuery相关文章