JSFiddle - React, Tailwind, and code Playground

by Teuta Koraqi

HTML

<input id="textArea" type="text" />
<br />
<div id="one"></div>
<input id="Submit" type="submit" value="Test" onclick="AlertPrevWord()" />

JavaScript

function ReturnWord(text, caretPos) {
            var index = text.indexOf(caretPos);
            var preText = text.substring(0, caretPos);
            if (preText.indexOf(" ") > 0) {
                var words = preText.split(" ");
                return words[words.length - 1]; //return last word
            }
            else {
                return preText;
            }
        }

        function AlertPrevWord() {
            var text = document.getElementById("textArea");
            var caretPos = GetCaretPosition(text)
            var word = ReturnWord(text.value, caretPos);
            if (word != null) {
                alert(word);
            }

        }

        function GetCaretPosition(ctrl) {
            var CaretPos = 0;   // IE Support
            if (document.selection) {
                ctrl.focus();
                var Sel = document.selection.createRange();
                Sel.moveStart('character', -ctrl.value.length);
                CaretPos = Sel.text.length;
            }
            // Firefox support
            else if (ctrl.selectionStart || ctrl.selectionStart == '0')
                CaretPos = ctrl.selectionStart;
            return (CaretPos);
        }
        
        function appendHtml() {
        var text = document.getElementById("textArea");
        var caretPos = GetCaretPosition(text)
        var word = ReturnWord(text.value, caretPos);
        var d1 = document.getElementById('one');
        d1.insertAdjacentHTML('beforeend', '<div id="two">word</div>');
        }