I was experiencing an issue with an instance of CKEditor that was working until a short while ago, now returning a JS error l.lang.contextmenu is undefined. Looking at various threads online, I found that this issue with others had been fixed by upgrading/downgrading to various versions or by setting the CKEDITOR_BASEPATH to the relative path to the CKEditor directory.
After trying many different versions from 3.3.1 to the latest nightly build with and without setting CKEDITOR_BASEPATH and getting mixed and inconsistent successes and failures (and the error changing to m.lang.contextmenu), I finally found it to be working perfectly every time by including the source file instead of the packed version, without any code alterations (worked for 3.5.1 and latest nightly, have not tested it with earlier).
For efficiency, I would like to return to the usage of the packed version, however, that doesn't seem possible at this point. At first, I thought it was a variable conflict, as I am using other minified JavaScripts in this application, but with the error persisting from l.lang.contextmenu on older versions to m.lang.contextmenu leads me to believe otherwise. This m variable appears to be local variable passed as an argument to a function in ckeditor.js, but just to be safe, I decided to run alert(m.toSource()); at the window level to ensure that the variable is empty, which it is, then I added the same alert(m.toSource()); inside the function in question. the m variable being pretty much EVERYTHING, I decided to reduce it down to just alert(m.lang.toSource()); which returned an existing object, but with no members. So at some point, m.lang is not being properly assigned, and it is only in the packed version of the code, full source works with no tweaks right out of the box.
Also, after commenting out the reference to m.lang.contextmenu, m.lang.about is now undefined in a different function. As editing source and not packed source is by far easier, I am leaving it as it is for now, and just using ckeditor_source.js instead of ckeditor.js; but I have not given up yet. Anyone else experience this issue or one like it, don't just settle for my work-around, let me know about it, and together we can solve this issue for good.
After trying many different versions from 3.3.1 to the latest nightly build with and without setting CKEDITOR_BASEPATH and getting mixed and inconsistent successes and failures (and the error changing to m.lang.contextmenu), I finally found it to be working perfectly every time by including the source file instead of the packed version, without any code alterations (worked for 3.5.1 and latest nightly, have not tested it with earlier).
For efficiency, I would like to return to the usage of the packed version, however, that doesn't seem possible at this point. At first, I thought it was a variable conflict, as I am using other minified JavaScripts in this application, but with the error persisting from l.lang.contextmenu on older versions to m.lang.contextmenu leads me to believe otherwise. This m variable appears to be local variable passed as an argument to a function in ckeditor.js, but just to be safe, I decided to run alert(m.toSource()); at the window level to ensure that the variable is empty, which it is, then I added the same alert(m.toSource()); inside the function in question. the m variable being pretty much EVERYTHING, I decided to reduce it down to just alert(m.lang.toSource()); which returned an existing object, but with no members. So at some point, m.lang is not being properly assigned, and it is only in the packed version of the code, full source works with no tweaks right out of the box.
Also, after commenting out the reference to m.lang.contextmenu, m.lang.about is now undefined in a different function. As editing source and not packed source is by far easier, I am leaving it as it is for now, and just using ckeditor_source.js instead of ckeditor.js; but I have not given up yet. Anyone else experience this issue or one like it, don't just settle for my work-around, let me know about it, and together we can solve this issue for good.
Re: Source version works, but packed version has errors