JSFiddle - React, Tailwind, and code Playground
HTML
<form>
<textarea id="div"></textarea>
</form>
CSS
#div {
display: inline-block;
width: 300px;
height: 150px;
border: 1px solid #000;
}
#div::-moz-selection {
background-color: #fff;
}
#div::selection {
background-color: #fff;
}
JavaScript
window.onload = function () {
var div = document.getElementById('div'),
preventDefault = function (e) {
if (e.preventDefault) {
e.preventDefault();
}
e.returnValue = false;
return false;
};
if (div.attachEvent) {
div.attachEvent('onselectstart', preventDefault);
div.attachEvent('onpaste', preventDefault);
} else {
div.addEventListener('paste', preventDefault);
div.addEventListener('select', function (e) {
var start = this.selectionStart,
end = this.selectionEnd;
if (this.selectionDirection === 'forward') {
this.setSelectionRange(end, end);
} else {
this.setSelectionRange(start, start);
}
});
div.addEventListener('mousedown', function () {
this.addEventListener('keydown', preventDefault);
});
div.addEventListener('mouseup', function () {
this.removeEventListener('keydown', preventDefault);
});
}
};