我正在尝试使用jQuery向现有的CKEditor添加一段文本。
当点击链接时,需要完成此操作。
当点击链接时,需要完成此操作。
我尝试了这个解决方案,它适用于常规文本区域,但不适用于CKEditor:
jQuery.fn.extend({ insertAtCaret: function(myValue) { return this.each(function(i) { if (document.selection) { //For browsers like Internet Explorer this.focus(); sel = document.selection.createRange(); sel.text = myValue; this.focus(); } else if (this.selectionStart || this.selectionStart == '0') { //For browsers like Firefox and Webkit based var startPos = this.selectionStart; var endPos = this.selectionEnd; var scrollTop = this.scrollTop; this.value = this.value.substring(0,startPos) + myValue + this.value.substring(endPos,this.value.length); this.focus(); this.selectionStart = startPos + myValue.length; this.selectionEnd = startPos + myValue.length; this.scrollTop = scrollTop; } else { this.value += myValue; this.focus(); } }) } });
还有一个可以使用的选项:$(‘#editor’)。val(),但是这个附加文本在结尾或开始,而不是光标。
那么,有没有办法完成这个?
解决方法
你应该使用这个
$.fn.insertAtCaret = function (myValue) { myValue = myValue.trim(); CKEDITOR.instances['idofeditor'].insertText(myValue); };