//gm()这个方法有问题吗? 为什么我在文本域拖曳字符串然后按删除键(BackSpace)的时候只删除一个字母。而不是全部删除。 function gm(obj){ var slct = document.selection; var rng = slct.createRange(); obj.select(); rng.setEndPoint("StartToStart", slct.createRange()); var psn = rng.text.length; rng.collapse(false); rng.select(); var str1=obj.value.substring(0,psn) var str2=obj.value.substring(psn)
var left = /┡/; var right = /┪/; var lpost=str2.search(left); var rpost=str2.search(right); if((rpost>lpost&&lpost==-1)||(rpost<lpost&&rpost !=-1&&lpost!=-1)){ delStr(obj); //调用function delStr(obj)方法。 } }function delStr(obj){ if (evevt.key==8){ ... } if (event.key==46){ ... } }
1/ 我想判断光标要是在[]范围内执行删除操作,否则其他操作正常。所以我才在这个方法里调用delStr(); 2/ 不知道这样的直接调用对吗?使用这个show()方法,拖曳的时候不能全部删除(只删除一个字符)。能帮我解决一下吗?(问题关键) 3/ value值为空,对不起。我有点不理解。 <script language="javascript"> function show(obj){ var slct = document.selection; var rng = slct.createRange(); obj.select(); rng.setEndPoint("StartToStart", slct.createRange()); var psn = rng.text.length; rng.collapse(false); rng.select(); alert(psn); var str1=obj.value.substring(0,psn) var str2=obj.value.substring(psn)
var left = /\[/; var right = /]/; var lpost=str2.search(left); var rpost=str2.search(right); if((rpost>lpost&&lpost==-1)||(rpost<lpost&&rpost !=-1&&lpost!=-1)){ //判断光标在要是在[...]里执行下边。 alert("开始进入调用delStr()阶段"); // delStr(obj); //要是调另一个方法的话这样写可以吗? } } </script> <textarea onkeydown="show(this)" name="knowBaseContent" cols="60" rows="10" id="textarea">abc[defg]hijks[as]ashjj[jjh]hggg[hgh]hgha</textarea>
这个方法确实好得方法。我考虑一下。呵呵。但是这个问题你还是帮我考虑一下好吗? 谢谢。 我就这个问题解决后,这个模块就完事情了。应该完事了~~ 1/ 我想判断光标要是在[]范围内执行删除操作,否则其他操作正常。所以我才在这个方法里调用delStr(); 2/ 不知道这样的直接调用对吗?使用这个show()方法,拖曳的时候不能全部删除(只删除一个字符)。能帮我解决一下吗?(问题关键) 3/ value值为空,对不起。我有点不理解。 <script language="javascript"> function show(obj){ var slct = document.selection; var rng = slct.createRange(); obj.select(); rng.setEndPoint("StartToStart", slct.createRange()); var psn = rng.text.length; rng.collapse(false); rng.select(); alert(psn); var str1=obj.value.substring(0,psn) var str2=obj.value.substring(psn)
var left = /\[/; var right = /]/; var lpost=str2.search(left); var rpost=str2.search(right); if((rpost>lpost&&lpost==-1)||(rpost<lpost&&rpost !=-1&&lpost!=-1)){ //判断光标在要是在[...]里执行下边。 alert("开始进入调用delStr()阶段"); // delStr(obj); //要是调另一个方法的话这样写可以吗? } } </script> <textarea onkeydown="show(this)" name="knowBaseContent" cols="60" rows="10" id="textarea">abc[defg]hijks[as]ashjj[jjh]hggg[hgh]hgha</textarea>
你有MSN吗?
var rng = event.srcElement.createTextRange();
rng.moveToPoint(event.x,event.y);
rng.moveStart("character",-event.srcElement.value.length)
insertIndex = rng.text.length;
用这个方法寻找光标位置我感觉不正确。这个只能判断鼠标单击事件的。
我在想想。实在不行 在来问你。。
这个方法可以实现这个功能但是有点不足就是obj.select();这个方法可以换调吗?
因为每次用键盘操作光标的时候,它都会把整个文本域的内容全选。
有没有别的方法。<script language="javascript">
function up(obj){
var slct = document.selection;
var rng = slct.createRange();
obj.select();
rng.setEndPoint("StartToStart", slct.createRange());
var index = rng.text.length;
var str1=obj.value.substring(0,index)
var str2=obj.value.substring(index)
re=/┡([^┪]*?)$/ // "["
re2=/^[^┡]*?┪/ //"]"
if(event.keyCode==37||event.keyCode==39){
if(/┡/.test(str1)&&/^┪/.test(str2)){
document.getElementById("disButton").disabled=true;
}
}
}
</script>
<textarea onkeyup="up(this)" name="knowBaseContent" cols="60" rows="10" id="textarea">abc┡defg┪hijks┡as┪ashjj┡jjh┪hggg┡hgh┪hgha</textarea>
<input type="button" value="引用" onclick="javascript:quote()" id="disButton" />
<textarea id="txt" name="txt" onkeyup="show(this)">asdasdasd</textarea>
<script language=javascript>
function show(txb)
{
var slct = document.selection;
var rng = slct.createRange();
txb.select();
rng.setEndPoint("StartToStart", slct.createRange());
var psn = rng.text.length;
rng.collapse(false);
rng.select();
alert(psn);
} </script>
你说的这些我确实需要添加进去。上 下 左 右。
我在去好好想一想。谢谢你的帮助和建议。
感觉你这个人挺好的。
为什么我在文本域拖曳字符串然后按删除键(BackSpace)的时候只删除一个字母。而不是全部删除。
function gm(obj){ var slct = document.selection;
var rng = slct.createRange();
obj.select();
rng.setEndPoint("StartToStart", slct.createRange());
var psn = rng.text.length;
rng.collapse(false);
rng.select();
var str1=obj.value.substring(0,psn)
var str2=obj.value.substring(psn)
var left = /┡/;
var right = /┪/;
var lpost=str2.search(left);
var rpost=str2.search(right);
if((rpost>lpost&&lpost==-1)||(rpost<lpost&&rpost !=-1&&lpost!=-1)){
delStr(obj); //调用function delStr(obj)方法。
}
}function delStr(obj){
if (evevt.key==8){ ... }
if (event.key==46){ ... }
}
我也是刚 出来 混的 ,毕业不久。没有弄过javascript,经理让我自己去研究~头疼~。
不知道有没有那个大虾能帮助小弟了。
告辞!!!
2/ 不知道这样的直接调用对吗?使用这个show()方法,拖曳的时候不能全部删除(只删除一个字符)。能帮我解决一下吗?(问题关键)
3/ value值为空,对不起。我有点不理解。
<script language="javascript">
function show(obj){
var slct = document.selection;
var rng = slct.createRange();
obj.select();
rng.setEndPoint("StartToStart", slct.createRange());
var psn = rng.text.length;
rng.collapse(false);
rng.select();
alert(psn);
var str1=obj.value.substring(0,psn)
var str2=obj.value.substring(psn)
var left = /\[/;
var right = /]/;
var lpost=str2.search(left);
var rpost=str2.search(right);
if((rpost>lpost&&lpost==-1)||(rpost<lpost&&rpost !=-1&&lpost!=-1)){ //判断光标在要是在[...]里执行下边。
alert("开始进入调用delStr()阶段");
// delStr(obj); //要是调另一个方法的话这样写可以吗?
}
}
</script>
<textarea onkeydown="show(this)" name="knowBaseContent" cols="60" rows="10" id="textarea">abc[defg]hijks[as]ashjj[jjh]hggg[hgh]hgha</textarea>
ovj.value="";
z这样是自动全选拖曳判断值为空。
要是手动的还得需要楼上那样得判断,所以还必须解决。拖曳得时候只删除一个字符得问题。
拖曳这个操作这个有方法吗?每尝试过。
楼上得问题是个关键望朋友帮我解决。谢谢。
<input name="haha" ondragenter="return false">
谢谢。
我就这个问题解决后,这个模块就完事情了。应该完事了~~
1/ 我想判断光标要是在[]范围内执行删除操作,否则其他操作正常。所以我才在这个方法里调用delStr();
2/ 不知道这样的直接调用对吗?使用这个show()方法,拖曳的时候不能全部删除(只删除一个字符)。能帮我解决一下吗?(问题关键)
3/ value值为空,对不起。我有点不理解。
<script language="javascript">
function show(obj){
var slct = document.selection;
var rng = slct.createRange();
obj.select();
rng.setEndPoint("StartToStart", slct.createRange());
var psn = rng.text.length;
rng.collapse(false);
rng.select();
alert(psn);
var str1=obj.value.substring(0,psn)
var str2=obj.value.substring(psn)
var left = /\[/;
var right = /]/;
var lpost=str2.search(left);
var rpost=str2.search(right);
if((rpost>lpost&&lpost==-1)||(rpost<lpost&&rpost !=-1&&lpost!=-1)){ //判断光标在要是在[...]里执行下边。
alert("开始进入调用delStr()阶段");
// delStr(obj); //要是调另一个方法的话这样写可以吗?
}
}
</script>
<textarea onkeydown="show(this)" name="knowBaseContent" cols="60" rows="10" id="textarea">abc[defg]hijks[as]ashjj[jjh]hggg[hgh]hgha</textarea>