2016-11-17 2 views
2

Я ищу исправление, чтобы получить Material Design Light, работающий с MyBB, который использует SCEditor, редактор JS WYSIWYG. Существует конфликт, поскольку MDL добавляет классы макета, которые разбивают текстовое поле редактора. At Github there is a similar issue with TinyMCE, но я не уверен, как применить исправление к SCEditor.Как исправить материальный дизайн Light - конфликт SCEditor?

Любая помощь с благодарностью, спасибо.

ответ

3

Инициирование редактор после макета был обновлен, кажется, решить проблему для меня:

document.addEventListener('mdl-componentupgraded', function (e) { 
    if (typeof e.target.MaterialLayout !== 'undefined') { 
    // Create editor JS here 
    $('textarea').sceditor({ 
     plugins: 'bbcode', 
     style: 'https://cdn.jsdelivr.net/sceditor/1.5.1/jquery.sceditor.default.min.css' 
     /* any other options options here */ 
    }); 
    } 
}); 

Для MyBB вы вам нужно переместить JS, которая создает редактор в обработчик события так он вызывается после того, как MDL обновил макет. Если вы не можете переместить JS, вам нужно будет удалить и заново создать его редактор, чтобы исправить это:

document.addEventListener('mdl-componentupgraded', function (e) { 
    if (typeof e.target.MaterialLayout !== 'undefined') { 
    // Remove any previous instance first 
    $('textarea').sceditor('instance').destroy(); 

    // Create the editor 
    $('textarea').sceditor({ 
     plugins: 'bbcode', 
     style: 'https://cdn.jsdelivr.net/sceditor/1.5.1/jquery.sceditor.default.min.css' 
     /* any other options options here */ 
    }); 
    } 
}); 

Очень некрасиво, но должен работать для SCE.

MDL, вероятно, будет конфликтовать с любым другим JS, хотя перемещение MyBB JS внутри обработчика событий было бы лучшим решением, если можно.

+0

Он отлично работал, спасибо вам большое! – maniacmusic

+0

Он тоже работает для ckeditor, спасибо! Кажется, это общая проблема редактора WSYWYG. – user3322829

Смежные вопросы