Как включить WYMEditor для страниц переднего плана Refinery CMS?
Я настраиваю экземпляр Refinery CMS и создаю пользовательские страницы интерфейса. Я пытался следовать README для Wymeditor, но кажется, что Wymeditor, встроенный в RefineryCMS, был изменен, и это не работает.
https://github.com/wymeditor/wymeditor
Я попытался просмотреть исходный код страницы администрирования Refinery в редакторе, и просто скопировал теги исходного кода Javascript и CSS для включения в пользовательскую страницу внешнего интерфейса, добавил класс в текстовую область и вызвал wymeditor()
функция, но это дало ошибку Javascript.
HTML source...
<link href="/assets/wymeditor/skins/refinery/skin.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<script src="/assets/wymeditor/setup.js?body=1" type="text/javascript"></script>
<script src="/assets/wymeditor/functions.js?body=1" type="text/javascript"></script>
...
Выдает консольную ошибку
Uncaught TypeError: Cannot read property 'msie' of undefined boot_wym.js?body=1:117
2 ответа
Попробуйте версию jquery старше 1.9. Метод.browser был удален в 1.9
Вы также можете попробовать этот патч обезьяны JS
jQuery.browser = {};
(function () {
jQuery.browser.msie = false;
jQuery.browser.version = 0;
if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) {
jQuery.browser.msie = true;
jQuery.browser.version = RegExp.$1;
}
})();
Я добавил это сразу после текстовой области. Я не смог заставить его работать с JQuery, поставляемым с Refinery (даже с jquery-migrate), и я не смог заставить его работать с Wymeditor, который шел с Refinery. Я не верю, что это идеальное решение, но пока это все, что я мог придумать. Я уверен, что это сломает что-то еще, поскольку консоль выдает ошибки типа "У объекта нет метода карусели". Я не хочу помещать старый JQuery в application.js
или же application.haml
макет, так что, надеюсь, это локализует поломку. Открыт для новых идей...
= f.text_area :body, rows: 15, cols: 100, class: 'wymeditor'
<script type="text/javascript" src="/assets/jquery/jquery.js"></script>
<script type="text/javascript" src="/assets/wymeditor/jquery.wymeditor.js"></script>
:javascript
jQuery(function() {
$('.wymeditor').wymeditor();
console.log("initialized .wymeditor: "+$('.wymeditor'));
});