javascript - CK editor find and replace will works only first time then it will gives index error in ranges[0].setStart function -


ck editor find , replace work first time gives index error in ranges[0].setstart function.
have tried editor.updateelement(); it's not working.

function test() {        try {            var editor = ckeditor.instances[("<%=ckdescription.clientid %>")];            var sel = editor.getselection();             var element = sel.getstartelement();            sel.selectelement(element);            var findstring = 'fe';            var ranges = editor.getselection().getranges();             var startindex = element.gettext().indexof(findstring);            if (startindex != -1) {                ranges[0].setstart(element.getfirst(), startindex);                ranges[0].setend(element.getfirst(), startindex + findstring.length);                sel.selectranges([ranges[0]]);            }              var range = sel.getranges()[0];            range.deletecontents();            range.select();             editor.inserttext('for example');            editor.updateelement();         }        catch (e) {            alert(e);            return false;        }        return false;      } 

error :

indexsizeerror: failed execute 'setstart' on 'range': offset 36 larger or equal node's length (17).

thanks.

each , every time before creating ckeditor instance should try ckeditor.instances={}

sometime ckeditor.instance object use hold previous instances object property, next time find , replace function stop working because of previous instance same named property. solution destroy previous instance. 1 way call

editor.destroy() / ckeditor.instances.("<%=ckdescription.clientid %>").destroy()