javascript - ckeditor getting cursor from body -
i using ckeditor in jsp/javascript project in internet explorer , need location of cursor editor. have found code work if text area not text area. area text enterred ckeditor body class ="cke_editable cke_editable_themed cke_contents_ltr cke_show_borders".
function caret(node) { if(node.selectstart) return node.selection.start(); else if(!document.selection) return 0; var c = "\001"; var sel =document.selection.createrange(); var dul =sel.duplicate(); var len =0; dul.movetoelementtext(node); sel.text = c; len = (dul.text.indexof(c)); sel.movestart('character',-1); set.text = ""; return len; } the above code works if don't make textarea ckeditor instance. when make ckeditor instance, using alerts have been able trace code , find "dul.movetoelementtext(node)" line code crashes. believe because code works text area, hoping know of similar code work body element.
thanks
if trying swap out text new element here basic idea:
html:
<div id="ed" contenteditable="true">hello world</div> <hr/> <button id="swap">swap?</button> javascript:
var editor = ckeditor.instances.ed; document.getelementbyid("swap").onclick = function(){ var txt = editor.getselection().getselectedtext() || ""; var reversed = txt.split("").reverse().join(""); var linkhtml = "<a>" + reversed + "</a>"; var newelem = ckeditor.dom.element.createfromhtml( linkhtml, editor.document ); editor.insertelement( newelem ); }; example:
more info:
now if cause editor blur, have issue wince selection lost.
in case need call lock , unlock
editor.getselection().lock(); //call when start dialog editor.getselection().unlock(); //call when dialog done ideally not creating plugin way, should create following tutorial http://docs.ckeditor.com/#!/guide/plugin_sdk_sample_1 or extending hijacking dialog events , overriding functionality.
Comments
Post a Comment