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

洪爷爷 2012-04-01 12:12:38


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里的提示,不知道是哪个方法不适用,或者用别的方法能实现上面的功能又能很兼容的?

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

,,

感谢帮忙解决的朋友,祝你们生活愉快,,,
...全文
84 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2012-04-01
  • 打赏
  • 举报
回复
<!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>
洪爷爷 2012-04-01
  • 打赏
  • 举报
回复
if ((document.selection)) {
document.selection.createRange().text = Text1 + document.selection.createRange().text + Text2;
document.selection.empty();
}

虽然这里没防在文本框内,不过改一改能达到我的要求,,,感谢了

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧