Как использовать пакет TinyMCE jQuery и в чем разница с плагином TinyMCE jQuery

Я видел это сообщение Что такое пакет jQuery TinyMCE?, в котором объясняется, что пакет jQuery v4 TinyMCE - это всего лишь сообщение и сайт tinymce, содержащие только примеры v3.

Когда я загружаю пакет jQuery TinyMCE v4, там нет tiny_mce.js; похоже, есть два файла jquery.tinymce.min.js и tinymce.min.js. Я читал, что если я включаю оба файла, то я использую полную версию TinyMCE, а не версию jQuery, но если я включаю только файл jQuery, мой вызов tinyMCE.init завершается неудачно с сообщением «tinyMCE не определено».

Я бы предпочел выяснить это из документации, но я попытался выполнить поиск и ничего не нашел о версии jQuery.

По связанному с этим вопросу может ли кто-нибудь объяснить, что такое плагин TinyMCE jQuery и как он соотносится с вышеизложенным? Думаю, это может быть пробел в моем понимании.

Большое спасибо заранее


person Andy    schedule 29.01.2014    source источник


Ответы (3)


Несколько недель назад я столкнулся с той же проблемой. Вам не нужно использовать tinymce в качестве плагина jQuery, но при желании есть возможность. Подавляющее большинство исходного кода tinymce находится в файле tinymce.min.js, а файл jQuery.tinymce.min просто содержит код, который превращает функциональность tinymce в плагин jQuery. В любом случае, если вы хотите его использовать, вам потребуются оба.

<script src="/js/jquery-1.10.2.js" type="text/javascript"></script>
<script src="/js/tinymce/tinymce.min.js" type="text/javascript"></script>
<script src="/js/tinymce/jquery.tinymce.min.js" type="text/javascript"></script>

Насколько мне известно, единственное главное отличие TinyMCE - это способ инициализации редактора. Если вы не используете jQuery, инициализируйте его примерно так:

tinymce.init({
    selector: 'textarea',
    theme: "modern"
    ...
}) 

В то время как, когда вы используете его как плагин jQuery, вы можете использовать jQuery для его инициализации, и вы получаете дополнительное преимущество, заключающееся в возможности связать дополнительные качества jQuery с вашим методом инициализации. Как в:

$('textarea').html('<p>some dynamic content</p>').tinymce({
   theme: "modern",
   ...
})

В остальном, я думаю, они в основном такие же.

person 2potatocakes    schedule 30.01.2014
comment
Я также согласен с ответом @ Thariama, на самом деле не так много дополнительных преимуществ - person 2potatocakes; 30.01.2014
comment
Спасибо за ответы - это намного яснее, чем что-либо в документации, и теперь я рад, что не упустил возможность использовать стандартную версию. Я все еще не совсем уверен в разнице между версией jQuery и плагином jQuery - эти термины в основном синонимичны? - person Andy; 30.01.2014
comment
@Andy: Основываясь на вашем комментарии, я исследовал различия и обнаружил, что версии jQuery, похоже, не существует. Просто простой плагин jQuery для обертывания элемента управления JS. Подробности добавлены в новый ответ. Буду обновлять, когда узнаю больше. - person Gone Coding; 22.07.2015
comment
Спасибо, включая файл jquery brigding, тоже решил мою проблему. - person Ebru Güngör; 12.08.2016

Версия tinymce jQuery позволяет разработчику использовать команды jQuery для редактора tinymce. Я настоятельно рекомендую всем, кто слушает, не использовать сборку tinymce jQuery и придерживаться обычной версии tinymce. Причина этого проста: накладные расходы на создание дополнительных объектов и элементов с использованием версии jQuery не перевешивают преимущества. В случае использования собственных плагинов tinymce с несколькими обработчиками ключевых событий я обнаружил, что jQuery-версия tinymce долго обрабатывала много быстрых нажатий клавиатуры (что приводило к задержке появления букв в редакторе). Здесь можно использовать обычную сборку tinymce и также загрузить обычный jQuery в основной документ. После этого возможен доступ к tinymce и обращение к элементам html с помощью jQuery.

person Thariama    schedule 30.01.2014
comment
Основным аргументом в пользу продажи было то, что сборка jQuery (а не оболочка) должна была быть меньше, чем исходная версия JS, поскольку она использует jQuery и jQuery Sizzle вместо дублирования функциональности обоих. Очевидно, что использование jQuery может добавить накладные расходы времени выполнения , если это не было реализовано оптимально. - person Gone Coding; 22.07.2015

Учитывая путаницу между «версией» jQuery и «плагином» jQuery, я хотел бы исследовать, поскольку в данный момент я добавляю TinyMCE в проект jQuery MVC.

Я установил необработанный пакет NuGet TinyMCE из Exphox (необработанная версия JS) в один проект и пакет NuGet TinyMCE.jQuery в другом проекте.

Затем я сравнил папки, файлы, размер и т. Д. С помощью Araxis Merge, а затем «подогнал» минифицированный исходный код для проверки содержимого.

Вот результаты NuGet:

Пакеты NuGet идентичны, за исключением единственного файла jquery.tinymce.min.js, который был добавлен в пакет NuGet TinyMCE.jQuery.

Файл jQuery - это просто простой плагин для применения MCE к элементам jQuery!

Итак, что касается пакетов NuGet, версия jQuery - это не что иное, как плагин, реализующий TinyMCE для элементов jQuery. Ничего больше!

Это противоречит комментариям, найденным здесь http://www.tinymce.com/tryit/3_x/jquery_version.php это состояние:

В этом примере загружается конкретная jQuery-версия TinyMCE, эта версия немного меньше, поскольку не включает в себя некоторой избыточной логики, такой как движок Sizzle.

person Gone Coding    schedule 22.07.2015
comment
Спасибо, это хорошо - меня всегда пугает наличие двух вариантов одного и того же. Я предполагаю, что, когда я писал исходный вопрос 18 месяцев назад, могло быть 2 варианта. - person Andy; 22.07.2015
comment
@Andy: Либо так, либо на сайте TinyMCE много комментариев, принимающих желаемое за действительное :) - person Gone Coding; 22.07.2015