TinyMCE, Spellchecker, and Firefox Crashes

TinyMCE is a powerful JavaScript-based WYSIWYG HTML editor that you can embed into TEXTAREA fields of your Web forms.  In addition, a PHP based spell checking system called Spellchecker allows TinyMCE to highlight unknown words (using aspell or Google’s spelling Web service).

Unfortunately, Spellchecker 1.0.2 appears to crash Firefox.  The Moxiecode forums has this thread that tries to fix this issue, but still crashes in Firefox 1.0.7.  However, you can restore stability by commenting out the code that disables the TEXTAREA and displays the message box during the spell checking AJAX call.  (The downside is that the user should still wait for the AJAX call to return before continuing editing to keep accurate labeling of unknown words).

To do this, in editor_plugin_src.js, comment out the code between line 257 and 274 (using “/*” and “*/”) so it appears as:

/*
                                        bb = self._getBlockBoxLayer(inst);
                                        bb.moveRelativeTo(co, ‘tl’);
                                        bb.resizeTo(co.offsetWidth, co.offsetHeight);
                                        bb.show();

                                        // Setup message box
                                        mb = self._getMsgBoxLayer(inst);
                                        e = mb.getElement();
                                        e.innerHTML = ‘<span>’ + tinyMCE.getLang(‘lang_spellchecker_swait’, ”, true) + ‘</span>’;
                                        mb.show();
                                        mb.moveRelativeTo(co, ‘cc’);

                                        if (tinyMCE.isMSIE && !tinyMCE.isOpera) {
                                                nl = co.getElementsByTagName(‘select’);
                                                for (i=0; i<nl.length; i++)
                                                        nl[i].disabled = true;
                                        }
*/

then either recompess or copy editor_plugin_src.js into editor_plugin.js.  (Alternatively insert “/*” in column 6636 and “*/” in column 7037 in editor_plugin.js.)

Hope this helps.