使用JS在textarea在光标处插入内容
2024-08-23 02:21:10
// 在光标处插入字符串
// myField 文本框对象
// myValue 要插入的值
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();
}
}
function insertText() {
var obj = document.getElementById("文本框");
var str = "[#$%$#]插入的内容";
if (document.selection) {
obj.focus();
var sel = document.selection.createRange(); sel.text = str; } else if (typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number') {
var startPos = obj.selectionStart;
var endPos = obj.selectionEnd;
var tmpStr = obj.value;
obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
} else {
obj.value += str;
}
}
//jQuery光标处插入文本 $(document).ready(function () {
$("#btnInsert").click(function () {
var obj = $("#txtquestion").get(0);
var str = "[#$%$#]";
if (document.selection) {
obj.focus();
var sel = document.selection.createRange();
sel.text = str;
} else if (typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number') {
var startPos = obj.selectionStart;
var endPos = obj.selectionEnd;
var tmpStr = obj.value;
obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
} else {
obj.value += str; });
});
(function ($) {
$.fn.insertContent = function (myValue, t) {
var $t = $(this)[0];
if (document.selection) { //ie
this.focus();
var sel = document.selection.createRange();
sel.text = myValue;
this.focus();
sel.moveStart('character', -l);
var wee = sel.text.length;
if (arguments.length == 2) {
var l = $t.value.length;
sel.moveEnd("character", wee + t);
t <= 0 ? sel.moveStart("character", wee - 2 * t - myValue.length) : sel.moveStart("character", wee - t - myValue.length); sel.select();
}
} else if ($t.selectionStart || $t.selectionStart == '0') {
var startPos = $t.selectionStart;
var endPos = $t.selectionEnd;
var scrollTop = $t.scrollTop;
$t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length);
this.focus();
$t.selectionStart = startPos + myValue.length;
$t.selectionEnd = startPos + myValue.length;
$t.scrollTop = scrollTop;
if (arguments.length == 2) {
$t.setSelectionRange(startPos - t, $t.selectionEnd + t);
this.focus();
}
}
else {
this.value += myValue;
this.focus();
}
};
})(jQuery);
最新文章
- 免费提供UG、ProE二次开发、定制化开发服务
- MFC编程入门之十六(对话框:消息对话框)
- 北京网赛I题 hiho1391 (树状数组、区间覆盖最大值问题)
- 显示所有SAP图标的ABAP代码
- WITH AS短语,也叫做子查询部分(subquery factoring)
- iOS 从相机或相册获取图片并裁剪
- js swipe 图片滑动控件实现 任意尺寸适用任意屏幕
- ffmpeg调试相关知识点
- ftp一些东东
- Ruby读excel写入mysql
- Python错误集
- 视觉词袋模型(BOVW)
- .net程序员做的第一个安卓APP
- 【bzoj3173-最长上升子序列-一题两解】
- 多个字符串有相同的hashcode(没见到大于8的时候转成红黑树)
- mysql:general_log 日志、数据库线程查询、数据库慢查询
- mysql 常用,使用经验
- 在IDEA中实战Git
- Python3学习之路~8.3 socket 服务端与客户端
- usb枚举
热门文章
- nodejs 中 module.exports 和 exports 的区别
- MCS锁——可伸缩的自旋锁
- 给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。
- c++课的圆周面积
- 45度炸队Alpha冲刺博客集
- 第一个spring冲刺团队贡献分(80分满分)
- Internet History, Technology and Security (Week3)
- Swift-KVC构造函数中数据类型和私有属性
- NServiceBus官方文档翻译(一)NServiceBus 概况
- CentOS 7.2修改网卡名称