Javascript 如何移动texearea的光标到指定位置 [比如说下一行开头] 在线等 可以用jquery
Javascript如何移动texearea的光标到指定位置[比如说吧光标移动到现在光标的下一行开头]在线等可以用jquery...
Javascript 如何移动texearea的光标到指定位置 [比如说吧光标移动到现在光标的下一行开头] 在线等 可以用jquery
展开
1个回答
展开全部
textarea的光标是受键盘控制的。home当前行头部,end当前行尾部,↑上一行,↓下一行。你可以。这样你就可以用JS代码模拟这4个键来控制光标的位置。如果想到下一行开头,就模拟两次按键就行。
模拟按键的函数。。
function fireKeyEvent(el, evtType, keyCode){
var doc = el.ownerDocument,
win = doc.defaultView || doc.parentWindow,
evtObj;
if(doc.createEvent){
if(win.KeyEvent) {
evtObj = doc.createEvent('KeyEvents');
evtObj.initKeyEvent( evtType, true, true, win, false, false, false, false, keyCode, 0 );
}
else {
evtObj = doc.createEvent('UIEvents');
Object.defineProperty(evtObj, 'keyCode', {
get : function() { return this.keyCodeVal; }
});
Object.defineProperty(evtObj, 'which', {
get : function() { return this.keyCodeVal; }
});
evtObj.initUIEvent( evtType, true, true, win, 1 );
evtObj.keyCodeVal = keyCode;
if (evtObj.keyCode !== keyCode) {
console.log("keyCode " + evtObj.keyCode + " 和 (" + evtObj.which + ") 不匹配");
}
}
el.dispatchEvent(evtObj);
}
else if(doc.createEventObject){
evtObj = doc.createEventObject();
evtObj.keyCode = keyCode;
el.fireEvent('on' + evtType, evtObj);
}
}
使用方法:传入你想要按的键号码。假设模拟回车,
fireKeyEvent(topWin.__activeElement, 'keydown', 13);
模拟按键的函数。。
function fireKeyEvent(el, evtType, keyCode){
var doc = el.ownerDocument,
win = doc.defaultView || doc.parentWindow,
evtObj;
if(doc.createEvent){
if(win.KeyEvent) {
evtObj = doc.createEvent('KeyEvents');
evtObj.initKeyEvent( evtType, true, true, win, false, false, false, false, keyCode, 0 );
}
else {
evtObj = doc.createEvent('UIEvents');
Object.defineProperty(evtObj, 'keyCode', {
get : function() { return this.keyCodeVal; }
});
Object.defineProperty(evtObj, 'which', {
get : function() { return this.keyCodeVal; }
});
evtObj.initUIEvent( evtType, true, true, win, 1 );
evtObj.keyCodeVal = keyCode;
if (evtObj.keyCode !== keyCode) {
console.log("keyCode " + evtObj.keyCode + " 和 (" + evtObj.which + ") 不匹配");
}
}
el.dispatchEvent(evtObj);
}
else if(doc.createEventObject){
evtObj = doc.createEventObject();
evtObj.keyCode = keyCode;
el.fireEvent('on' + evtType, evtObj);
}
}
使用方法:传入你想要按的键号码。假设模拟回车,
fireKeyEvent(topWin.__activeElement, 'keydown', 13);
更多追问追答
追问
能直接更改光标的位置么?
能直接更改光标的位置么?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询