| Edward |
|
|---|---|
|
Столкнулся с проблемой описанной в заголовке. У меня в шаблоне page.edit.tpl используется тема на bootstrap и имеется несколько textarea такого вида <textarea class="editor form-control" rows="3"></textarea> Решил проблему поправив файлик plugins/ckeditor/presets/ckeditor.default.set.js
/*
* Default CKEditor preset and connector
*/
var ckeditorClasses = [
['editor','Full'], // textarea class, editor toolbar size
['medieditor','Medium'],
['minieditor','Basic']
];
function hasClass(el, selector) {
var className = " " + selector + " ";
,
if ((" " + el.className + " ").replace(/[\n\t]/g, " ").indexOf(className) > -1) {
return true;
}
return false;
}
function ckeditorReplace() {
var textareas = document.getElementsByTagName('textarea');
for (var i = 0; i < textareas.length; i++) {
if (hasClass(textareas[i], ckeditorClasses[0][0]) || hasClass(textareas[i], ckeditorClasses[1][0]) || hasClass(textareas[i], ckeditorClasses[2][0])) {
var textareasStyle = getComputedStyle(textareas[i], null) || textareas[i].currentStyle;
if (hasClass(textareas[i], ckeditorClasses[0][0])) { var toolbars = ckeditorClasses[0][1] }
if (hasClass(textareas[i], ckeditorClasses[1][0])) { var toolbars = ckeditorClasses[1][1] }
if (hasClass(textareas[i], ckeditorClasses[2][0])) { var toolbars = ckeditorClasses[2][1] }
CKEDITOR.replace(textareas[i], {height:textareasStyle.height, width:'100%', toolbar: toolbars});
}
}
}
if (typeof jQuery == 'undefined') {
if (window.addEventListener) {
window.addEventListener('load', ckeditorReplace, false);
} else if (window.attachEvent) {
window.attachEvent('onload', ckeditorReplace);
} else {
window.onload = ckeditorReplace;
}
} else {
$(document).ready(ckeditorReplace);
ajaxSuccessHandlers.push(ckeditorReplace);
}
Кривоватое решение, но что-то подобное должно быть сразу из коробки, потому как классов у элемента может быть более одного. Email: ed.gabishev@gmail.com
Telegram: https://t.me/Ed_Gaba Dieser Beitrag wurde von Macik (am 31. Oktober 2015, 16:40, vor 10 Jahre) bearbeitet |