(→Javascript API) |
(used a javascript beautifier for the code) |
||
Line 8: | Line 8: | ||
I wanted to see which functions are available for me and show that in... the editor itself. I did the following. | I wanted to see which functions are available for me and show that in... the editor itself. I did the following. | ||
<pre> | <pre> | ||
− | var objEditor=CKEDITOR.instances["id_of_textarea"]; | + | var objEditor = CKEDITOR.instances["id_of_textarea"]; |
− | var str=""; | + | var str = ""; |
for (var item in objEditor) { | for (var item in objEditor) { | ||
− | str+="<strong>"+item+"</strong>="+objEditor[item].toString().str_replace("\n", "<br>").str_replace(";", ";<br> ").str_replace("{", "{<br> ").str_replace("}", "}<br>").str_replace(";<br> }", ";<br>}")+"<br>"; | + | str += "<strong>" + item + "</strong>=" + objEditor[item].toString().str_replace("\n", "<br>").str_replace(";", ";<br> ").str_replace("{", "{<br> ").str_replace("}", "}<br>").str_replace(";<br> }", ";<br>}") + "<br>"; |
} | } | ||
objEditor.setData(str); | objEditor.setData(str); | ||
Line 19: | Line 19: | ||
<pre> | <pre> | ||
− | getThemeSpace=function(l){ | + | getThemeSpace = function(l) { |
− | var m='cke_'+l,n=this._[m]||(this._[m]=a.document.getById(m+'_'+this.name)); | + | var m = 'cke_' + l, |
+ | n = this._[m] || (this._[m] = a.document.getById(m + '_' + this.name)); | ||
return n; | return n; | ||
} | } | ||
− | focus=function(){ | + | focus = function() { |
− | var n=l(this); | + | var n = l(this); |
− | if(n)n.focus(); | + | if (n) n.focus(); |
} | } | ||
− | setMode=function(n){ | + | setMode = function(n) { |
− | var o,p=this.getThemeSpace('contents'),q=this.checkDirty(); | + | var o, p = this.getThemeSpace('contents'), |
− | if(this.mode){ | + | q = this.checkDirty(); |
− | + | if (this.mode) { | |
− | + | if (n == this.mode) return; | |
− | + | var r = l(this); | |
− | + | o = r.getData(); | |
− | + | r.unload(p); | |
− | } | + | this.mode = ''; |
− | p.setHtml(''); | + | } |
− | var s=l(this,n); | + | p.setHtml(''); |
− | if(!s)throw '[CKEDITOR.editor.setMode] Unknown mode "'+n+'".'; | + | var s = l(this, n); |
− | if(!q)this.on('mode', | + | if (!s) throw '[CKEDITOR.editor.setMode] Unknown mode "' + n + '".'; |
− | + | if (!q) this.on('mode', | |
− | + | function() { | |
− | + | this.resetDirty(); | |
− | + | this.removeListener('mode', arguments.callee); | |
− | + | }); | |
− | s.load(p,typeof o!='string'?this.getData():o); | + | s.load(p, typeof o != 'string' ? this.getData() : o); |
} | } | ||
− | addMode=function(n,o){ | + | addMode = function(n, o) { |
− | o.name=n; | + | o.name = n; |
− | (this._.modes||(this._.modes={}))[n]=o; | + | (this._.modes || (this._.modes = {}))[n] = o; |
} | } | ||
− | mode=openDialog=function(l){ | + | mode = openDialog = function(l) { |
− | var m=a.dialog._.dialogDefinitions[l]; | + | var m = a.dialog._.dialogDefinitions[l]; |
− | if(typeof m=='function'){ | + | if (typeof m == 'function') { |
− | var n=this._.storedDialogs||(this._.storedDialogs={}), o=n[l]||(n[l]=new a.dialog(this,l)); | + | var n = this._.storedDialogs || (this._.storedDialogs = {}), |
+ | o = n[l] || (n[l] = new a.dialog(this, l)); | ||
o.show(); | o.show(); | ||
return o; | return o; | ||
} | } | ||
− | var p=a.document.getBody(),q=p.$.style.cursor,r=this; | + | var p = a.document.getBody(), |
− | p.setStyle('cursor','wait'); | + | q = p.$.style.cursor, |
+ | r = this; | ||
+ | p.setStyle('cursor', 'wait'); | ||
a.scriptLoader.load(a.getUrl(m), | a.scriptLoader.load(a.getUrl(m), | ||
− | + | function() { | |
− | + | r.openDialog(l); | |
− | + | p.setStyle('cursor', q); | |
− | + | }); | |
− | |||
return null; | return null; | ||
} | } | ||
− | restoreRealElement=function(l){ | + | restoreRealElement = function(l) { |
− | var m=decodeURIComponent(l.getAttribute('_cke_realelement')); | + | var m = decodeURIComponent(l.getAttribute('_cke_realelement')); |
− | return g.createFromHtml(m,this.document); | + | return g.createFromHtml(m, this.document); |
} | } | ||
− | createFakeParserElement=function(l,m,n,o){ | + | createFakeParserElement = function(l, m, n, o) { |
− | var p=new a.htmlParser.basicWriter(); | + | var p = new a.htmlParser.basicWriter(); |
l.writeHtml(p); | l.writeHtml(p); | ||
− | var q=p.getHtml(),r={'class':m,src:a.getUrl('images/spacer.gif'),_cke_realelement:encodeURIComponent(q)}; | + | var q = p.getHtml(), |
− | if(n)r._cke_real_element_type=n; | + | r = { |
− | if(o)r._cke_resizable=o; | + | 'class': m, |
− | return new a.htmlParser.element('img',r); | + | src: a.getUrl('images/spacer.gif'), |
+ | _cke_realelement: encodeURIComponent(q) | ||
+ | }; | ||
+ | if (n) r._cke_real_element_type = n; | ||
+ | if (o) r._cke_resizable = o; | ||
+ | return new a.htmlParser.element('img', r); | ||
} | } | ||
− | createFakeElement=function(l,m,n,o){ | + | createFakeElement = function(l, m, n, o) { |
− | var p={'class':m,src:a.getUrl('images/spacer.gif'),_cke_realelement:encodeURIComponent(l.getOuterHtml())}; | + | var p = { |
− | + | 'class': m, | |
− | if(n)p._cke_real_element_type=n; | + | src: a.getUrl('images/spacer.gif'), |
− | if(o)p._cke_resizable=o; | + | _cke_realelement: encodeURIComponent(l.getOuterHtml()) |
− | return this.document.createElement('img',{attributes:p}); | + | }; |
+ | |||
+ | if (n) p._cke_real_element_type = n; | ||
+ | if (o) p._cke_resizable = o; | ||
+ | return this.document.createElement('img', { | ||
+ | attributes: p | ||
+ | }); | ||
} | } | ||
− | forceNextSelectionCheck=function(){ | + | forceNextSelectionCheck = function() { |
delete this._.selectionPreviousPath; | delete this._.selectionPreviousPath; | ||
} | } | ||
− | getSelection=function(){ | + | getSelection = function() { |
− | var u=this; | + | var u = this; |
− | var s=u.document?u.document.getSelection():null; | + | var s = u.document ? u.document.getSelection() : null; |
− | if(s&&c){ | + | if (s && c) { |
− | var t=s.getNative().createRange(); | + | var t = s.getNative().createRange(); |
− | if(!t)return null; | + | if (!t) return null; |
− | else if(t.item)return t.item(0).ownerDocument==u.document.$?s:null; | + | else if (t.item) return t.item(0).ownerDocument == u.document.$ ? s: null; |
− | else return t.parentElement().ownerDocument==u.document.$?s:null; | + | else return t.parentElement().ownerDocument == u.document.$ ? s: null; |
} | } | ||
return s; | return s; | ||
} | } | ||
− | getMenuItem=function(l){ | + | getMenuItem = function(l) { |
return this._.menuItems[l]; | return this._.menuItems[l]; | ||
} | } | ||
− | addMenuItems=function(l){ | + | addMenuItems = function(l) { |
− | for(var m in l)this.addMenuItem(m,l[m]); | + | for (var m in l) this.addMenuItem(m, l[m]); |
} | } | ||
− | addMenuItem=function(l,m){ | + | addMenuItem = function(l, m) { |
− | if(this._.menuGroups[m.group])this._.menuItems[l]=new a.menuItem(this,l,m); | + | if (this._.menuGroups[m.group]) this._.menuItems[l] = new a.menuItem(this, l, m); |
} | } | ||
− | attachStyleStateChange=function(l,m){ | + | attachStyleStateChange = function(l, m) { |
− | var n=this._.styleStateChangeCallbacks; | + | var n = this._.styleStateChangeCallbacks; |
− | if(!n){ | + | if (!n) { |
− | n=this._.styleStateChangeCallbacks=[]; | + | n = this._.styleStateChangeCallbacks = []; |
this.on('selectionChange', | this.on('selectionChange', | ||
− | + | function(o) { | |
− | + | for (var p = 0; p p++) { | |
− | + | var q = n[p], | |
− | + | r = q.style.checkActive(o.data.path) ? 1 : 2; | |
− | + | if (q.state !== r) { | |
− | + | q.fn.call(this, r); | |
− | + | q.state !== r; | |
} | } | ||
} | } | ||
− | ); | + | }); |
} | } | ||
− | n.push({style:l,fn:m}); | + | n.push({ |
+ | style: l, | ||
+ | fn: m | ||
+ | }); | ||
} | } | ||
− | insertText=function(l){ | + | insertText = function(l) { |
− | l=e.htmlEncode(l); | + | l = e.htmlEncode(l); |
− | l=l.replace(/(?:\r\n)|\n|\r/g,' | + | l = l.replace(/(?:\r\n)|\n|\r/g, ' |
'); | '); | ||
this.insertHtml(l); | this.insertHtml(l); | ||
} | } | ||
− | updateElement=function(){ | + | updateElement = function() { |
− | var m=this; | + | var m = this; |
− | var l=m.element; | + | var l = m.element; |
− | if(l&&m.elementMode==1)if(l.is('textarea'))l.setValue(m.getData()); | + | if (l && m.elementMode == 1) if (l.is('textarea')) l.setValue(m.getData()); |
else l.setHtml(m.getData()); | else l.setHtml(m.getData()); | ||
} | } | ||
− | resetDirty=function(){ | + | resetDirty = function() { |
− | if(this.mayBeDirty)this._.previousValue=this.getSnapshot(); | + | if (this.mayBeDirty) this._.previousValue = this.getSnapshot(); |
} | } | ||
− | checkDirty=function(){ | + | checkDirty = function() { |
− | return this.mayBeDirty&&this._.previousValue!==this.getSnapshot(); | + | return this.mayBeDirty && this._.previousValue !== this.getSnapshot(); |
} | } | ||
− | insertElement=function(l){ | + | insertElement = function(l) { |
− | this.fire('insertElement',l); | + | this.fire('insertElement', l); |
} | } | ||
− | insertHtml=function(l){ | + | insertHtml = function(l) { |
− | this.fire('insertHtml',l); | + | this.fire('insertHtml', l); |
} | } | ||
− | setData=function(l){ | + | setData = function(l) { |
− | var m={dataValue:l}; | + | var m = { |
− | this.fire('setData',m); | + | dataValue: l |
− | this._.data=m.dataValue; | + | }; |
− | this.fire('afterSetData',m); | + | this.fire('setData', m); |
+ | this._.data = m.dataValue; | ||
+ | this.fire('afterSetData', m); | ||
} | } | ||
− | loadSnapshot=function(l){ | + | loadSnapshot = function(l) { |
− | this.fire('loadSnapshot',l); | + | this.fire('loadSnapshot', l); |
} | } | ||
− | getSnapshot=function(){ | + | getSnapshot = function() { |
− | var l=this.fire('getSnapshot'); | + | var l = this.fire('getSnapshot'); |
− | if(typeof l!='string'){ | + | if (typeof l != 'string') { |
− | var m=this.element; | + | var m = this.element; |
− | if(m&&this.elementMode==1)l=m.is('textarea')?m.getValue():m.getHtml(); | + | if (m && this.elementMode == 1) l = m.is('textarea') ? m.getValue() : m.getHtml(); |
} | } | ||
return l; | return l; | ||
} | } | ||
− | getData=function(){ | + | getData = function() { |
− | var n=this; | + | var n = this; |
n.fire('beforeGetData'); | n.fire('beforeGetData'); | ||
− | var l=n._.data; | + | var l = n._.data; |
− | if(typeof l!='string'){ | + | if (typeof l != 'string') { |
− | var m=n.element; | + | var m = n.element; |
− | if(m&&n.elementMode==1)l=m.is('textarea')?m.getValue():m.getHtml(); | + | if (m && n.elementMode == 1) l = m.is('textarea') ? m.getValue() : m.getHtml(); |
− | else l=''; | + | else l = ''; |
} | } | ||
− | l={dataValue:l}; | + | l = { |
− | n.fire('getData',l); | + | dataValue: l |
+ | }; | ||
+ | n.fire('getData', l); | ||
return l.dataValue; | return l.dataValue; | ||
} | } | ||
− | getCommand=function(l){ | + | getCommand = function(l) { |
return this._.commands[l]; | return this._.commands[l]; | ||
} | } | ||
− | execCommand=function(l,m){ | + | execCommand = function(l, m) { |
− | var n=this.getCommand(l),o={name:l,commandData:m,command:n}; | + | var n = this.getCommand(l), |
− | if(n&&n.state!=0)if(this.fire('beforeCommandExec',o)!==true){ | + | o = { |
− | o.returnValue=n.exec(o.commandData); | + | name: l, |
− | if(this.fire('afterCommandExec',o)!==true)return o.returnValue; | + | commandData: m, |
+ | command: n | ||
+ | }; | ||
+ | if (n && n.state != 0) if (this.fire('beforeCommandExec', o) !== true) { | ||
+ | o.returnValue = n.exec(o.commandData); | ||
+ | if (this.fire('afterCommandExec', o) !== true) return o.returnValue; | ||
} | } | ||
return false; | return false; | ||
} | } | ||
− | destroy=function(l){ | + | destroy = function(l) { |
− | var m=this; | + | var m = this; |
− | if(!l)m.updateElement(); | + | if (!l) m.updateElement(); |
m.theme.destroy(m); | m.theme.destroy(m); | ||
a.remove(m); | a.remove(m); | ||
} | } | ||
− | addCss=function(l){ | + | addCss = function(l) { |
this._.styles.push(l); | this._.styles.push(l); | ||
} | } | ||
− | addCommand=function(l,m){ | + | addCommand = function(l, m) { |
− | return this._.commands[l]=new a.command(this,m); | + | return this._.commands[l] = new a.command(this, m); |
} | } | ||
− | hasListeners=function(){ | + | hasListeners = function() { |
− | var f=this; | + | var f = this; |
− | if(!(f._&&f._.events))a.event.call(f); | + | if (! (f._ && f._.events)) a.event.call(f); |
− | (f[e]=a.event.prototype[e]).apply(f,arguments); | + | (f[e] = a.event.prototype[e]).apply(f, arguments); |
} | } | ||
− | removeListener=function(){ | + | removeListener = function() { |
− | var f=this; | + | var f = this; |
− | if(!(f._&&f._.events))a.event.call(f); | + | if (! (f._ && f._.events)) a.event.call(f); |
− | (f[e]=a.event.prototype[e]).apply(f,arguments); | + | (f[e] = a.event.prototype[e]).apply(f, arguments); |
} | } | ||
− | fireOnce=function(b,c){ | + | fireOnce = function(b, c) { |
− | return a.event.prototype.fireOnce.call(this,b,c,this); | + | return a.event.prototype.fireOnce.call(this, b, c, this); |
} | } | ||
− | fire=function(b,c){ | + | fire = function(b, c) { |
− | return a.event.prototype.fire.call(this,b,c,this); | + | return a.event.prototype.fire.call(this, b, c, this); |
} | } | ||
− | _=[object Object] | + | _ = [object Object] |
− | elementMode=1 | + | elementMode = 1 |
− | _init=function(){ | + | _init = function() { |
− | var z=this; | + | var z = this; |
− | var x=g.get(z._.element),y=z._.instanceConfig; | + | var x = g.get(z._.element), |
+ | y = z._.instanceConfig; | ||
delete z._.element; | delete z._.element; | ||
delete z._.instanceConfig; | delete z._.instanceConfig; | ||
− | z._.commands={}; | + | z._.commands = {}; |
− | z._.styles=[]; | + | z._.styles = []; |
− | z.element=x; | + | z.element = x; |
− | z.name=x&&z.elementMode==1&&(x.getId()||x.getNameAtt())||m(); | + | z.name = x && z.elementMode == 1 && (x.getId() || x.getNameAtt()) || m(); |
− | z.config=e.prototypedCopy(i); | + | z.config = e.prototypedCopy(i); |
− | z.ui=new k(z); | + | z.ui = new k(z); |
− | z.focusManager=new a.focusManager(z); | + | z.focusManager = new a.focusManager(z); |
− | a.fire('instanceCreated',null,z); | + | a.fire('instanceCreated', null, z); |
− | z.on('mode',w); | + | z.on('mode', w); |
− | p(z,y); | + | p(z, y); |
} | } | ||
− | element=[object Object] | + | element = [object Object] |
− | name=input_memo | + | name = input_memo |
− | config=[object Object] | + | config = [object Object] |
− | ui=[object Object] | + | ui = [object Object] |
− | focusManager=[object Object] | + | focusManager = [object Object] |
− | on=function(c,d,e,f,g){ | + | on = function(c, d, e, f, g) { |
− | var h=this._.events[c]||(this._.events[c]=new b(c)); | + | var h = this._.events[c] || (this._.events[c] = new b(c)); |
− | if(h.getListenerIndex(d)<0){ | + | if (h.getListenerIndex(d) < 0) { |
− | var i=h.listeners; | + | var i = h.listeners; |
− | if(!e)e=this; | + | if (!e) e = this; |
− | if(isNaN(g))g=10; | + | if (isNaN(g)) g = 10; |
− | var j=this,k=function(m,n,o,p){ | + | var j = this, |
− | + | k = function(m, n, o, p) { | |
− | + | var q = { | |
− | + | name: c, | |
− | } | + | sender: this, |
+ | editor: m, | ||
+ | data: n, | ||
+ | listenerData: f, | ||
+ | stop: o, | ||
+ | cancel: p, | ||
+ | removeListener: function() { | ||
+ | j.removeListener(c, d); | ||
+ | } | ||
+ | }; | ||
+ | d.call(e, q); | ||
+ | return q.data; | ||
}; | }; | ||
− | |||
− | |||
− | |||
− | k.fn=d; | + | k.fn = d; |
− | k.priority=g; | + | k.priority = g; |
− | for(var l=i.length-1;l>=0;l--) | + | for (var l = i.length - 1; l >= 0; l--) |
− | + | if (i[l].priority <= g) { | |
− | + | i.splice(l + 1, 0, k); | |
− | + | return; | |
+ | } | ||
+ | i.unshift(k); | ||
+ | |||
} | } | ||
− | |||
− | |||
} | } | ||
− | |||
− | |||
</pre> | </pre> | ||
Revision as of 10:01, 16 April 2009
Javascript API
I couldn't find documentation on how to talk to the javascript API. I figured that through CKEDITOR.instances.id_of_textarea.setData(string); I could update the contents or get it with getData();
First thing I learned I can also access an instance of an editor through: CKEDITOR.instances["id_of_textarea"].setData(string); //This is more usefull in generic code.
I wanted to see which functions are available for me and show that in... the editor itself. I did the following.
var objEditor = CKEDITOR.instances["id_of_textarea"]; var str = ""; for (var item in objEditor) { str += "<strong>" + item + "</strong>=" + objEditor[item].toString().str_replace("\n", "<br>").str_replace(";", ";<br> ").str_replace("{", "{<br> ").str_replace("}", "}<br>").str_replace(";<br> }", ";<br>}") + "<br>"; } objEditor.setData(str);
With this output (I aligned the code a bit for readibility):
getThemeSpace = function(l) { var m = 'cke_' + l, n = this._[m] || (this._[m] = a.document.getById(m + '_' + this.name)); return n; } focus = function() { var n = l(this); if (n) n.focus(); } setMode = function(n) { var o, p = this.getThemeSpace('contents'), q = this.checkDirty(); if (this.mode) { if (n == this.mode) return; var r = l(this); o = r.getData(); r.unload(p); this.mode = ''; } p.setHtml(''); var s = l(this, n); if (!s) throw '[CKEDITOR.editor.setMode] Unknown mode "' + n + '".'; if (!q) this.on('mode', function() { this.resetDirty(); this.removeListener('mode', arguments.callee); }); s.load(p, typeof o != 'string' ? this.getData() : o); } addMode = function(n, o) { o.name = n; (this._.modes || (this._.modes = {}))[n] = o; } mode = openDialog = function(l) { var m = a.dialog._.dialogDefinitions[l]; if (typeof m == 'function') { var n = this._.storedDialogs || (this._.storedDialogs = {}), o = n[l] || (n[l] = new a.dialog(this, l)); o.show(); return o; } var p = a.document.getBody(), q = p.$.style.cursor, r = this; p.setStyle('cursor', 'wait'); a.scriptLoader.load(a.getUrl(m), function() { r.openDialog(l); p.setStyle('cursor', q); }); return null; } restoreRealElement = function(l) { var m = decodeURIComponent(l.getAttribute('_cke_realelement')); return g.createFromHtml(m, this.document); } createFakeParserElement = function(l, m, n, o) { var p = new a.htmlParser.basicWriter(); l.writeHtml(p); var q = p.getHtml(), r = { 'class': m, src: a.getUrl('images/spacer.gif'), _cke_realelement: encodeURIComponent(q) }; if (n) r._cke_real_element_type = n; if (o) r._cke_resizable = o; return new a.htmlParser.element('img', r); } createFakeElement = function(l, m, n, o) { var p = { 'class': m, src: a.getUrl('images/spacer.gif'), _cke_realelement: encodeURIComponent(l.getOuterHtml()) }; if (n) p._cke_real_element_type = n; if (o) p._cke_resizable = o; return this.document.createElement('img', { attributes: p }); } forceNextSelectionCheck = function() { delete this._.selectionPreviousPath; } getSelection = function() { var u = this; var s = u.document ? u.document.getSelection() : null; if (s && c) { var t = s.getNative().createRange(); if (!t) return null; else if (t.item) return t.item(0).ownerDocument == u.document.$ ? s: null; else return t.parentElement().ownerDocument == u.document.$ ? s: null; } return s; } getMenuItem = function(l) { return this._.menuItems[l]; } addMenuItems = function(l) { for (var m in l) this.addMenuItem(m, l[m]); } addMenuItem = function(l, m) { if (this._.menuGroups[m.group]) this._.menuItems[l] = new a.menuItem(this, l, m); } attachStyleStateChange = function(l, m) { var n = this._.styleStateChangeCallbacks; if (!n) { n = this._.styleStateChangeCallbacks = []; this.on('selectionChange', function(o) { for (var p = 0; p p++) { var q = n[p], r = q.style.checkActive(o.data.path) ? 1 : 2; if (q.state !== r) { q.fn.call(this, r); q.state !== r; } } }); } n.push({ style: l, fn: m }); } insertText = function(l) { l = e.htmlEncode(l); l = l.replace(/(?:\r\n)|\n|\r/g, ' '); this.insertHtml(l); } updateElement = function() { var m = this; var l = m.element; if (l && m.elementMode == 1) if (l.is('textarea')) l.setValue(m.getData()); else l.setHtml(m.getData()); } resetDirty = function() { if (this.mayBeDirty) this._.previousValue = this.getSnapshot(); } checkDirty = function() { return this.mayBeDirty && this._.previousValue !== this.getSnapshot(); } insertElement = function(l) { this.fire('insertElement', l); } insertHtml = function(l) { this.fire('insertHtml', l); } setData = function(l) { var m = { dataValue: l }; this.fire('setData', m); this._.data = m.dataValue; this.fire('afterSetData', m); } loadSnapshot = function(l) { this.fire('loadSnapshot', l); } getSnapshot = function() { var l = this.fire('getSnapshot'); if (typeof l != 'string') { var m = this.element; if (m && this.elementMode == 1) l = m.is('textarea') ? m.getValue() : m.getHtml(); } return l; } getData = function() { var n = this; n.fire('beforeGetData'); var l = n._.data; if (typeof l != 'string') { var m = n.element; if (m && n.elementMode == 1) l = m.is('textarea') ? m.getValue() : m.getHtml(); else l = ''; } l = { dataValue: l }; n.fire('getData', l); return l.dataValue; } getCommand = function(l) { return this._.commands[l]; } execCommand = function(l, m) { var n = this.getCommand(l), o = { name: l, commandData: m, command: n }; if (n && n.state != 0) if (this.fire('beforeCommandExec', o) !== true) { o.returnValue = n.exec(o.commandData); if (this.fire('afterCommandExec', o) !== true) return o.returnValue; } return false; } destroy = function(l) { var m = this; if (!l) m.updateElement(); m.theme.destroy(m); a.remove(m); } addCss = function(l) { this._.styles.push(l); } addCommand = function(l, m) { return this._.commands[l] = new a.command(this, m); } hasListeners = function() { var f = this; if (! (f._ && f._.events)) a.event.call(f); (f[e] = a.event.prototype[e]).apply(f, arguments); } removeListener = function() { var f = this; if (! (f._ && f._.events)) a.event.call(f); (f[e] = a.event.prototype[e]).apply(f, arguments); } fireOnce = function(b, c) { return a.event.prototype.fireOnce.call(this, b, c, this); } fire = function(b, c) { return a.event.prototype.fire.call(this, b, c, this); } _ = [object Object] elementMode = 1 _init = function() { var z = this; var x = g.get(z._.element), y = z._.instanceConfig; delete z._.element; delete z._.instanceConfig; z._.commands = {}; z._.styles = []; z.element = x; z.name = x && z.elementMode == 1 && (x.getId() || x.getNameAtt()) || m(); z.config = e.prototypedCopy(i); z.ui = new k(z); z.focusManager = new a.focusManager(z); a.fire('instanceCreated', null, z); z.on('mode', w); p(z, y); } element = [object Object] name = input_memo config = [object Object] ui = [object Object] focusManager = [object Object] on = function(c, d, e, f, g) { var h = this._.events[c] || (this._.events[c] = new b(c)); if (h.getListenerIndex(d) < 0) { var i = h.listeners; if (!e) e = this; if (isNaN(g)) g = 10; var j = this, k = function(m, n, o, p) { var q = { name: c, sender: this, editor: m, data: n, listenerData: f, stop: o, cancel: p, removeListener: function() { j.removeListener(c, d); } }; d.call(e, q); return q.data; }; k.fn = d; k.priority = g; for (var l = i.length - 1; l >= 0; l--) if (i[l].priority <= g) { i.splice(l + 1, 0, k); return; } i.unshift(k); } }
Anybody who wishes to talk to an instance of the CKeditor through the javascript API, now has a starting point and is able to see which functions are available for an instance of an CKeditor.
If you find yourself able to use any of these functions, please create your account here on the wiki and document it. The developers of CKeditor are working crazily on coding CKEditor v3.