富文本编辑器相信很多程序员都用过,但是如何自己制作一个仿富文本的编辑器来解决一些简单的或自定义的需求呢?下面给大家共享一个使用JavaScript实现在textarea光标处插入指定文本内容以及字符串。
点击按钮,可以把按钮的内容插入到textarea文本框内光标处,光标默认在文本框开头。
通过其他的js就可以实现文本框插入表情、选中文字加粗、内容中插入图片等等。

HTML代码:
<form id="form1" name="form1" method="post" action="">    <label>        <textarea name="text" id="text" cols="45" rows="10">        这是测试内容,请在任意位置插入内容。        这是测试内容,请在任意位置插入内容。        这是测试内容,请在任意位置插入内容。        这是测试内容,请在任意位置插入内容。        这是测试内容,请在任意位置插入内容。        这是测试内容,请在任意位置插入内容。        这是测试内容,请在任意位置插入内容。        这是测试内容,请在任意位置插入内容。        这是测试内容,请在任意位置插入内容。        这是测试内容,请在任意位置插入内容。        这是测试内容,请在任意位置插入内容。        这是测试内容,请在任意位置插入内容。        </textarea>        <a id="insert" href="javascript:void(0);">{PHP code here}</a>    </label></form>Javascript代码:
<script type="text/javascript">    var text = document.getElementById('text');    var insert = document.getElementById('insert');    insert.onclick = function () {        insertAtCursor(text, this.innerHTML);    };    function insertAtCursor(myField, myValue) {        if (document.selection) {            //IE support            myField.focus();            sel = document.selection.createRange();            sel.text = myValue;            sel.select();        } else if (myField.selectionStart || myField.selectionStart == '0') {            //MOZILLA/NETSCAPE support            var startPos = myField.selectionStart;            var endPos = myField.selectionEnd;            var beforeValue = myField.value.substring(0, startPos);            var afterValue = myField.value.substring(endPos, myField.value.length);            myField.value = beforeValue + myValue + afterValue;            myField.selectionStart = startPos + myValue.length;            myField.selectionEnd = startPos + myValue.length;            myField.focus();        } else {            myField.value += myValue;            myField.focus();        }    }</script>                                                                                       
                                                    



网站建设
品牌设计
APP开发
小程序开发
商城开发
网站优化
UI设计
增值服务