一些不常用的事件监听方法
document
selectionchange
可以获取到点击的文字所在元素对象及点击或者选中文字起始位置和结束位置
应该是只针对 文字,我点击图片没有触发时间,点击文字时间正常触发1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22// addEventListener version
document.addEventListener('selectionchange', () => {
console.log(document.getSelection());
/**
* anchorNode: text
* anchorOffset: 4
* baseNode: text
* baseOffset: 4 选中起始位置
* extentNode: text 选中起始元素
* extentOffset: 4 选中结束位置
* focusNode: text 选中结束元素
* focusOffset: 4
* isCollapsed: true
* rangeCount: 1
* type: "Caret"
*/
});
// onselectionchange version
document.onselectionchange = () => {
console.log(document.getSelection());
};
通过下方代码操作可以改变选中位置1
2
3
4
5
6
7
8let selection = document.getSelection()!
const range = document.createRange();
selection.removeAllRanges();
range.selectNodeContents(node);
range.setStart(textNode,start)
range.setEnd(textNode,start)
range.collapse(false);
selection.addRange(range);
compositionStart
可以监控到用户使用中文输入法输入
CompositionEnd
可以监控到用户结束中文输入法输入
input
元素添加了 contenteditable
属性后,可以监控到用户输入nativeEvent
上的 inputType 可以判断用户当前输入状态
- deleteContentBackward 删除鼠标选中的字符或后方字符
- deleteContentForward 删除鼠标选中的字符或前方字符
- insertText 添加文字