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);
}