JSFiddle - React, Tailwind, and code Playground
by Muzaffar Rasulov
HTML
<div id="root">
<p>Выделение текста, текста выделение.</p>
<p>#^#$^#}@</p>
</div>
JavaScript
//'use strict'
document.addEventListener('selectend', function() {
alert(window.getSelection().toString());
})
//Создаем событие 'selectionend'
;
(function() {
if (!window.getSelection) {
return;
}
var event = document.createEvent('Event'); //Старым способом, что бы в ИЕ работало
event.initEvent('selectend', true, true);
var selectstart = false;
document.addEventListener('selectstart', function() {
selectstart = true;
})
//Выделение мышей
document.addEventListener('mouseup', function() {
raiseEvent();
})
//Комбинацией ctrl+a
document.addEventListener('keyup', function() {
raiseEvent();
})
//Проводим проверку, и вызываем событие
function raiseEvent() {
if (window.getSelection().toString().length && selectstart) {
selectstart = false;
document.dispatchEvent(event);
}
}
}());