JSFiddle - React, Tailwind, and code Playground

by lazybios

HTML

<h1>jquery 在textarea光标处插入内容</h1>
<form id="form1" name="form1" method="post" act
ion="">
  <label>
    <textarea name="test1" id="test1" cols="45" rows="5">默认测试</textarea>
    <br />
    <br />
    <input name="tag" type="text" id="tag" value="【星知苑】" />
    <br />
    <br />
    <a href="javascript:void(0);" onclick="insertAtCursor($('test1'), $('tag').value);">插入</a>
  </label>
</form>

JavaScript

function $(id) { return document.getElementById(id); }

    function insertAtCursor(myField, myValue) 
    {
        //IE support
        if (document.selection) 
        {
            myField.focus();
            sel            = document.selection.createRange();
            sel.text    = myValue;
            sel.select();
        }
        //MOZILLA/NETSCAPE support
        else if (myField.selectionStart || myField.selectionStart == '0') 
        {
            var startPos    = myField.selectionStart;
            var endPos        = myField.selectionEnd;
            // save scrollTop before insert
            var restoreTop    = myField.scrollTop;
            myField.value    = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
            if (restoreTop > 0)
            {
                // restore previous scrollTop
                myField.scrollTop = restoreTop;
            }
            myField.focus();
            myField.selectionStart    = startPos + myValue.length;
            myField.selectionEnd    = startPos + myValue.length;
        } else {
            myField.value += myValue;
            myField.focus();
        }
    }