Kod
q is not a constructor
Po podpięciu tiny_mce_src.js zamiast skompresowanego tiny_mce.js wyskakujeKod
o is not a constructor
(9377 out of range 1262)
tiny_mce_src.js (wiersz 9377)
(9377 out of range 1262)
tiny_mce_src.js (wiersz 9377)
Mam najnowszą wersję TinyMCE. Problem występuje, kiedy otwieram news do edycji.
Tak wygląda skrypt ładujący TinyMCE na żądanie
//o - obiekt textarea //bbcode - tutaj i tak nie stosuję tego argumentu function Editor(o, bbcode) { var that = this; include('plugins/tinymce/tiny_mce.js', function() { //Reszta kodu wykona się po załadowaniu pliku tiny_mce.js if(!o.id) o.id = o.name; that.o = tinymce.add(new tinymce.Editor(o.id, { //Global settings dialog_type: 'modal', gecko_spellcheck: true, document_base_url: document.baseURI, //Entities - UTF-8 needs only critical characters entities: '160,nbsp,38,amp,60,lt,62,gt', //Theme theme: 'advanced', theme_advanced_resizing: true, theme_advanced_toolbar_location: 'top', theme_advanced_toolbar_align: 'left', theme_advanced_statusbar_location: 'bottom', //Formats theme_advanced_blockformats: 'p,div,h3,h4,blockquote,dt,dd,code,samp', //Plugins plugins: 'safari,table,fullscreen,pagebreak,media,emotions,contextmenu,searchreplace', //Buttons theme_advanced_buttons1: 'formatselect,fontselect,fontsizeselect,table,image,media,charmap,emotions,|,repl
ace,|,fullscreen,code,help,|,undo,redo', theme_advanced_buttons2: 'cut,copy,paste,removeformat,|,bold,italic,underline,strikethrough,|,sub,sup,|,ju
stifyleft,justifycenter,justifyright,justifyfull,|,numlist,bullist,|,blockquote,l
ink,|,forecolor,backcolor', theme_advanced_buttons3: '' })); that.o.render(); }); } Editor.prototype.emots = function() {}; Editor.prototype.protect = function() {}; Editor.prototype.preview = function(opt,where,text) { if(text == undefined) text = this.o.value; if(this.box == undefined && !where) { this.box = document.createElement('div'); this.box.className = 'preview'; this.o.getElement().form.parentNode.insertBefore(this.box, this.o.getElement().form) } this.box.innerHTML = this.o.getContent(); this.box.scrollIntoView() };
A to już sekcja <body>
f = document.forms['news']; //tak, to obiekt formularza e = new Editor(f.txt); //tutaj ładujemy TinyMCE, f.txt istnieje e.emots(); //jak wydać w poprzednim fragmencie, linijka nic nie robi e.protect(); //też nic nie robi var e2 = new Editor(f.text); //drugi edytor, f.text istnieje e2.emots();
Nie wywołuję TinyMCE.init(). Wydaje mi się, że nie ma potrzeby.
Co jest przyczyną problemu? Czy to bug w TinyMCE, czy moja wina?
A tak przy okazji zapytam. TinyMCE będzie jako wtyczka w CMS-ie. Chcę stworzyć możliwość podpięcia dowolnego edytora, a więc fragment kodu dołączający bibliotekę wygląda tak:
1. Czy jest sens wspierać inne edytory niż TinyMCE?
{ $content->addScript('plugins/'.$cfg['wysiwyg'].'/loader.js'); } else { /* załaduj standardowy edytor */ }
2. Co myślicie o opcji, aby admin mógł włączyć WYSIWYG tylko wybranym redaktorom?
3. Jak ulepszyć wyżej przedstawiony sposób ładowania edytora TinyMCE?