使用下面这个函数,绝对好使。
function insertHtmlAtCaret(html){
var sel, range;
if (windowgetSelection) {
// IE9 and non-IE
sel = windowgetSelection();
if (selgetRangeAt && selrangeCount) {
range = selgetRangeAt(0);
rangedeleteContents();
var el = documentcreateElement("div");
elinnerHTML = html;
var frag = documentcreateDocumentFragment(), node, lastNode;
while((node = elfirstChild)){
lastNode=fragappendChild(node);
}
rangeinsertNode(frag);
// Preserve the selection
if (lastNode) {
range = rangecloneRange();
rangesetStartAfter(lastNode);
rangecollapse(true);
selremoveAllRanges();
seladdRange(range);
}
}
} else if (documentselection && documentselectiontype != "Control") {
// IE < 9
documentselectioncreateRange()pasteHTML(html);
}
}
可以处理richedit控件的EN_SETFOCUS(获得焦点)和EN_KILLFOCUS(失去焦点)消息
声明一个CHARRANGE变量(比如叫cr)记录光标位置,在EN_KILLFOCUS处理函数中调用GetSel(cr)记录当前光标位置,然後在EN_SETFOCUS处理函数中调用SetSel(cr)回覆之前记录的光标位置
以上就是关于怎么使 contenteditable="true"标签触发focus()后的光标出现在内容末尾全部的内容,包括:怎么使 contenteditable="true"标签触发focus()后的光标出现在内容末尾、VS2010下,RichEdit 2.0获得焦点后 ,自动全选并且自动滚到到最后一行,请问怎么解决、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)