Как включить 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'));
  });
Другие вопросы по тегам