@iicoding/utils
Version:
Browser 端 - 类型判断 - 类似 koa 的异步compose - sleep - 扩展对象属性 - 扩展 storage 对象功能
32 lines • 938 B
JavaScript
export function toggleSelection() {
var _active;
var selection = document.getSelection();
if (!(selection !== null && selection !== void 0 && selection.rangeCount)) {
return function () {};
}
var active = document.activeElement;
var ranges = [];
for (var i = 0; i < selection.rangeCount; i++) {
ranges.push(selection.getRangeAt(i));
}
switch ((_active = active) === null || _active === void 0 || (_active = _active.tagName) === null || _active === void 0 ? void 0 : _active.toUpperCase()) {
case 'INPUT':
case 'TEXTAREA':
active.blur();
break;
default:
// @ts-ignore
active = null;
break;
}
selection.removeAllRanges();
return function () {
selection.type === 'Caret' && selection.removeAllRanges();
if (!selection.rangeCount) {
ranges.forEach(function (range) {
selection.addRange(range);
});
}
active && active.focus();
};
}