Details see TextRange Object
解决方案 »
- 关于连续数字的正则表达式
- js传参数出错
- node.getUI().toggleCheck(true);和node.attributes.checked == true;的区别是什么
- imageButton 问题
- js 动态增加多行问题。帮帮忙,在线等。。急!
- 问一个同一个BUTTON执行两次的问题
- Raphael做折线图时怎么设置图例?
- 小弟第一次写 javascript 请问怎么在javascript文件里加入vbscrit脚本
- 史上最牛的树型菜单程序,是jspsmartmenu的完全客户端版
- 请大家看看这什么意思?
- javascript复选框得的值怎么往文本框中传呢?
- 现有两个json数据结构,如何对它们进行比较?
向两星的说的对,我手头只有js的手册,查不到textRange啊
能给段代码吗?哪位大虾,或指点下到什么样的手册去查.
最好代码,我现在急功近利呢
function go(){
//得到文本框的值
var t = document.getElementById("txt1").value;
//得到選中的值
var r = document.selection.createRange().text;
//拆分
...
}
</script>
<input type=button onclick='selectText(box.value,2,box.value.length)' value='check' name='test3' ID="Button1">
<script language=javascript>
function selectText(str,sp,ep)
{
sp = parseInt(sp)
ep = parseInt(ep) if(isNaN(sp)||isNaN(ep))
return; var rng = box.createTextRange();
rng.moveEnd("character",-str.length)
rng.moveStart("character",-str.length)
rng.collapse(true);
rng.moveEnd("character",ep)
rng.moveStart("character",sp)
rng.select(); }
</script>
我的目的是这样,如果文本框的值是"abc",我要把b找出来(不是所有的b,所以不能用类似replace的命令),然后把b进行变换,比如编程D,然后,生成aDc,放回到原来的文本框中去,使得原来的文本框的值变成aDc.
谢谢.
对于楼上两位的例子,我看过了,正想办法找出选中部分的起始和结束部分.以便用类似substr的方法重组字符串.
我是做后台处理的,对前台技术不熟,请指点.
var str ="abcbaccb";
str.replace("b","B");alert(str); //output “aBcbaccb”
我最根本的目的是客户要求有些值(通过选中的方式得到)要在文本框里隐藏起来,但并没有删除.
下面是我试着弄的一段代码,思路是在选中的文本两端加上关于隐藏的标签,没有得到我想要的效果,请大侠们指点.
<html>
<body>
<input type=text id="box" value="大家今天好!">
<input type=button onclick="tt()" name='test2' value = 'tttt' ID="Button2">
<script language=javascript>
function tt()
{
range = document.selection.createRange()
//得到一个textRange对象
var strSelected = range.text;
strOri = document.getElementById('box').value;
//得到box文本框的值
strOri = strOri.replace(strSelected,"<span display = 'NONE'">+strSelected+"</span>" );
//上行的目的是要把选中的内容藏起来,但是没达到效果
alert(strOri);
}
</script>
</body>
</html>
<html>
<body>
<input type=text id="box" value="大家今天今天今天今天今天今天今天今天好!">
<input type=button onclick="tt()" name='test2' value = 'tttt' ID="Button2">
<script language=javascript>
function tt()
{
range = document.selection.createRange()
//得到一个textRange对象
var strSelected = range.text;
strOri = document.getElementById('box').value;
//得到box文本框的值
strOri = strOri.replace(strSelected,"<span display = 'NONE'">+strSelected+"</span>" );
//上行的目的是要把选中的内容藏起来,但是没达到效果
//alert(strOri);
document.getElementById('box').value = strOri;
alert( document.getElementById('box').value );
//里面出现了false字样,怎么回事啊?
}
</script>
</body>
</html>
<body>
<input type=text id="box" value="大家今天好!">
<input type=button onclick="tt()" name='test2' value = 'tttt' ID="Button2">
<script language="javascript">
function tt()
{
range = document.selection.createRange()
//得到一个textRange对象
var strSelected = range.text;
if(strSelected!="")
{
//strOri = document.getElementById('box').value;
//alert(strOri);
//得到box文本框的值
//strOri = strOri.replace(strSelected,"<span display = 'NONE'">+strSelected+"</span>" );
//上行的目的是要把选中的内容藏起来,但是没达到效果
//alert(strOri);
range.text='liu';
strOri = document.getElementById('box').value;
alert(strOri);
}
}
</script>
</body>
</html>
<body>
<input type=text id="box" value="我是谁?">
<input type=button onclick="tt()" name='test2' value = 'tttt' ID="Button2">
<script language="javascript">
function tt()
{
range = document.selection.createRange()
if(range.text!="")
range.text='塞北的雪';
}
</script>
</body>
</html>
我希望能把选中的文字用html标签或其它方法藏起来,但是那些内容实际上仍然在文本框里面.
谢谢各位.
我还有一个变通的想法,就是在数据库里,我实际上是保存两个值,一个是完整的,一个是目前客户想要显示的.在网页上面分情况显示.
原来的思路,需要解决下列静态html没有达到我预期效果的问题.
<html>
<body>
<table>
<tr>
<td>
啊啊<span width="0" display="NONE">哦哦</span>峨峨
</td>
</tr>
</table>
</body>
</html>
<body>
<input type=text id="box" value="我是谁?">
<input type=hidden id="box2" value="">
<input type=button onclick="tt()" name='test2' value = 'tttt' ID="Button2">
<script language="javascript">
function tt()
{
range = document.selection.createRange()
if(range.text!="")
{
range.text='<span style=\'display:none\'' + range.text + '</span>';
}
}
</script>
</body>
</html>
我自己用table控件,写了一小段.能够找出选中内容,也能在直接写html的前提下隐藏代码,但是,试图用replace来达到那个效果,就失败了,我觉得是转义符的问题,哪位帮忙看看?
<html>
<body>
<table>
<tr>
<td>
啊啊<iframe width="0" display="NONE">哦哦</iframe>峨峨
</td>
<td id='box'>
大家今天好
</td>
</tr>
</table>
<input type=button onclick="tt()" name='test2' value = 'tttt' ID="Button2">
<script language="javascript">
function tt()
{
range = document.selection.createRange()
//得到一个textRange对象
var strSelected = range.text;
alert(strSelected)
strOri = document.getElementById('box').innerHTML;
alert(strOri);
strOri = strOri.replace(strSelected,"<iframe width = \"0\" display = \"NONE\"">+strSelected+"</iframe>" );
alert(strOri);
// if(strSelected!="")
// {
//strOri = document.getElementById('box').value;
//alert(strOri);
//得到box文本框的值
//strOri = strOri.replace(strSelected,"<span display = 'NONE'">+strSelected+"</span>" );
//上行的目的是要把选中的内容藏起来,但是没达到效果
//alert(strOri);
//range.text='liu';
//strOri = document.getElementById('box').value;
//alert(strOri);
//}
}
</script>
</body>
</html>
<html>
<body>
<table>
<tr>
<td id = 'box'>
aabbcc
</td>
</tr>
</table>
<input type=hidden id="box2" value="">
<input type=button onclick="tt()" name='test2' value = 'tttt' ID="Button2">
<script language="javascript">
function tt()
{
range = document.selection.createRange()
if(range.text!="")
{
strOri = document.getElementById("box").innerHTML;
strSelected = range.text;
strHide = '<span style=\'display:none\'>' + range.text + '</span>';
strOri = strOri.replace(strSelected,strHide); document.getElementById("box").innerHTML = strOri;
alert(document.getElementById("box").innerHTML);
}
}</script>
</body>
</html>
所以,非常希望各位能够帮忙找出selection块在整个文本中的位置,就没有办法吗?
谢谢,雪,涅磐,向两星,无赖,烧鸡等
呵呵
function aa()
{
var selRg = document.selection.createRange()
var str = selRg.text
var totalRg = document.all.oTxt.createTextRange()
if(totalRg.inRange(selRg))
{
do
{
var selText = selRg.text
selRg.expand("character")
}
while(selRg.text.substring(selText.length, selRg.text.length) != "")
var afterStr = selRg.text.substring(str.length, selRg.text.length)
var beforeStr = totalRg.text.substring(0, totalRg.text.length - selRg.text.length)
alert("前:" + beforeStr + "\n中:" + str + "\n后:" + afterStr)
}
}
</SCRIPT><BUTTON onclick="aa()">Click here</BUTTON>
abc
<input ID=oTxt value="aaaaaabbbbbccccc">
while(selRg.text.substring(selText.length, selRg.text.length) != "")
哪位大侠解释下啊,我是不是太贪心无耻兼偷懒了?呵呵.
这个循环是什么用意?
这是 do while 循环的条件。每次扩展选择区后,判断 最后扩展的一位是不是有效字符。若是空串,说明已经扩展到字符串末尾了。
老了,呵呵.
说了不该说的话.糊涂啊.
^_^