文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>通过javascript对textarea的编辑和选择

通过javascript对textarea的编辑和选择

时间:2010-08-28  来源:Cavan

 

 

 

这次大概语法是走Discuz的路线,个人只是作为修改而已,有什么错的,欢迎大家指出!

 

 

var BROWSER = {};
var USERAGENT = navigator.userAgent.toLowerCase();
BROWSER.ie
= window.ActiveXObject && USERAGENT.indexOf('msie') != -1 && USERAGENT.substr(USERAGENT.indexOf('msie') + 5, 3);

 

function isUndefined(variable) {  //检测参数,判断是否为undefined
return typeof variable == 'undefined' ? true : false;
}

 

 

function strlen(str) {  //计算字符串长度,主要是IE下有/r/n的长度计算
return (BROWSER.ie && str.indexOf('\n') != -1) ? str.replace(/\r?\n/g, '_').length : str.length;
}

 

 

点击即可将UBB代码插入到光标所在位置
function seditor_insetunit(key,text,textend,moveend){
var content = document.getElementById(key+'_content');//编辑对象
content.focus(); //textarea获取焦点
textend = isUndefined(textend) ? '' : textend; //如果textend为未知参数,那么textend为空
moveend = isUndefined(textend) ? 0 : moveend; //如果moveend为未知参数,那么moveend等于空
startlen = strlen(text); //text的长度
endlen =strlen(textend); //textend的长度
if(!isUndefined(content.selectionStart)) { //IE不支持selectitonStart
var opn = content.selectionStart + 0; //光标位置起始点
if(textend != '') { //如果textend不为空
text =text + content.value.substring(content.selectionStart,content.selectionEnd) + textend; //选出高亮的文本,然后加上text,textend;
}
content.value
= content.value.substr(0, content.selectionStart) + text + content.value.substr(content.selectionEnd);
if(isUndefined(moveend)) { //如果moveend为未知参数
content.selectionStart = opn +text.length - endlen; //把光标位置聚焦在添加TAG中
content.selectionEnd = opn +text.length- endlen;
}
}
else if(document.selection && document.selection.createRange) {//开始写IE
var sel = document.selection.createRange(); //高亮部分的对象
if(textend != '') {
text
= text + sel.text + textend;//选出高亮的文本,然后加上text,textend;
}
sel.text
= text.replace(/\r?\n/g, '\r\n'); //替换掉然后写入高亮部分的对象文本值
if(!moveend) {
sel.moveStart(
'character', -endlen); //moveStart 更改高亮部分的对象范围的开始位置
sel.moveEnd('character', -endlen);
}
sel.select();
//光标定位完重新赋予光标位置,不然会显示没有光标,除非在点一次
}
else{
content.value
+= text;
}

hide_menu(
'desc_smilies_menu');//此行可无!
}

 

效果如下:

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载