JSFiddle - React, Tailwind, and code Playground
HTML
<textarea name="message" id="message"></textarea>
JavaScript
var message = $("#message");
var events = null;
var previous;
if ('oninput' in message[0]) {
// Browser supports input event
events = "input";
} else if ('onpaste' in message[0]) {
// Browser supports paste event
events = "paste keyup contextmenu";
}
if (!events) {
// Ugh, poll and fire our own
events = "pseudoinput";
previous = message.val();
setInterval(function() {
var current = message.val();
if (current != previous) {
previous = current;
message.trigger(events);
}
}, 250);
}
display("Using: " + events);
message.on(events, function(e) {
display("Got event: " + e.type);
});
function display(msg) {
$("<p>").html(String(msg)).appendTo(document.body);
}