主题: editor.focus() 光标无法定位到默认文本末尾 |
作者: lziyanl, 发布日期: 2013-12-06 09:21:46, 浏览数: 3884 |
操作系统: ie、firefox、chrome
浏览器版本: KindEditor版本: 4.1.7 BUG再现步骤: 1. editor = K.create('textarea[name=content]'); 2. editor.html('文本和图片');3. editor.focus(); 期望结果: 光标能定位到文本内容的最后 |
作者: memoryza, 发布日期: 2013-12-06 09:48:05 |
我也有同样的困扰,正在思考如何fixed,希望作者大神能给出答案谢谢
|
回复 |
作者: memoryza, 发布日期: 2013-12-06 10:10:08 |
原来自带的api中有这样的说明,用range [事实证明我说错了,刚才我试验能focus到最后跟range无关,我去掉代码也一样,但是==!第二次focus的时候就不行了] http://kindeditor.net/docs/range.html#createbookmark-serialize |
回复 |
作者: lziyanl, 发布日期: 2013-12-06 10:57:09 |
回复memoryza:怎么使用?
var range = K.range(document); 报这个错误:Uncaught WrongDocumentError: A Node was used in a different document than the one that created it (that doesn't support it). |
回复 |
作者: lziyanl, 发布日期: 2013-12-06 11:00:20 |
回复memoryza:使用这段代码可以光标可以定位到纯文本最后,但是对于含html的文本如图片等,就不顶用了
function setFocusEnd(obj){ if(typeof obj == 'string') obj = document.getElementById(obj); obj.focus(); if(obj.createTextRange){//ie var rtextRange = obj.createTextRange(); rtextRange.moveStart('character', obj.value.length); rtextRange.collapse(true); rtextRange.select(); } else if(obj.selectionStart){//chrome "<input>"、"<textarea>" obj.selectionStart = obj.value.length; } else if(window.getSelection){ var sel = window.getSelection(); var tempRange = document.createRange(); tempRange.setStart(obj.firstChild, obj.firstChild.length); sel.removeAllRanges(); sel.addRange(tempRange); } |
回复 |