是否有这样的事件被jQuery捕获,我可以用来检测取消选择文本后取消选择文本?到目前为止,我一直在使用一种方法来捕获文档' s BODY上的点击,但是单击(或鼠标)可以在文本被清除之前选择文本(通过单击其他位置文件,曾经)。
此外,是否有用户在页面中选择了一些文字后触发的事件?上面的方法可以成功运行,因为显然,在选择文本后会触发正文上的click事件。但我想要一个更清洁的方式。
注意:此操作在DIV上完成,而不是在INPUT或TEXTAREA元素上完成。
答案 0 :(得分:0)
您可以使用Selection - object表示用户选择的文本范围或当前位置。你的问题已经回答了Stacks:
get selected text's html in div
有,解决方案是创建一个原型来提高浏览器的兼容性和内容。这也有效,但我推荐以上链接的解决方案:
编辑:你可以将AnchorOffset和FocusOffset存储到一个会话中,如果它们在一个范围内并在那之后进行比较,那么简单
$(function() {
$(document).on("mouseup", function() {
var mytext = window.getSelection();
if (typeof sessionStorage.getItem('initialRange') != 'undefined' && (mytext.anchorOffset != sessionStorage.getItem('initialRange') || mytext.focusOffset != sessionStorage.getItem('finalRange'))){
//DO WHAT YOU WANT, THE TEXT HAS BEEN DESELECTED
}
//take the coordenates of mouseup, when the mouse create a range, store the values
if (mytext.anchorOffset != mytext.focusOffset){
sessionStorage.setItem('initialRange', mytext.anchorOffset);
sessionStorage.setItem('finalRange', mytext.focusOffset);
}
});
});
编辑:下次,我会更好地阅读:)