当前位置: 代码迷 >> ASP.NET >> 处理文本框中选中的文字,IE6下通过帮解决火狐和其它浏览器,该如何处理
  详细解决方案

处理文本框中选中的文字,IE6下通过帮解决火狐和其它浏览器,该如何处理

热度:5397   发布时间:2013-02-25 00:00:00.0
处理文本框中选中的文字,IE6下通过帮解决火狐和其它浏览器
JScript code
function edit(TextId, Text1, Text2) {    if ((document.selection) && (document.selection.type == "Text") && (document.selection.createRange().parentElement().id == TextId)) {        document.selection.createRange().text = Text1 + document.selection.createRange().text + Text2;        document.selection.empty();    }    else {        alert("先在输入框中选中你要改变的文字。");    }}

上面代码在本机默认IE6通过,功能发挥正常,,火狐里不行,都执行的ELSE里的提示,不知道是哪个方法不适用,或者用别的方法能实现上面的功能又能很兼容的?

我要选中指定文本框里的内容,然后点按扭,改变选中的内容(前后加括号什么的),,同页面下可能有两到三个文本框

,,

感谢帮忙解决的朋友,祝你们生活愉快,,,

------解决方案--------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<input id="x" style="width:600px">
<input type="button" value="测试" onclick="edit('x','插入的左边内容','插入的右边内容')" />
<script>
function edit(TextId, Text1, Text2) {
if ((document.selection)) {
document.selection.createRange().text = Text1 + document.selection.createRange().text + Text2;
document.selection.empty();
}
else {
start = document.getElementById(TextId).selectionStart;
end = document.getElementById(TextId).selectionEnd;
t = document.getElementById(TextId).value;
t1 = t.substr(0, start);
t2 = t.substr(start, end - start);
t3 = t.substr(end);
document.getElementById(TextId).value = t1 + Text1 + t2 + Text2 + t3;
}
}
</script>
  相关解决方案