我如何使用TinyMCE jQuery包和TinyMCE jQuery插件有什么区别

时间:2014-01-29 14:45:16

标签: jquery tinymce tinymce-4

我看过这篇帖子What is the TinyMCE jQuery Package?,它解释了v4 TinyMCE jQuery包的内容,但帖子和tinymce网站只包含v3的例子。

当我下载v4 TinyMCE jQuery包时,没有tiny_mce.js;似乎有两个文件jquery.tinymce.min.js和tinymce.min.js。我已经读过,如果我包含这两个文件,那么我使用的是完整的TinyMCE而不是jQuery版本,但如果我只包含jQuery文件,我对tinyMCE.init的调用将失败并且“tinyMCE未定义”。

我真的宁愿从文档中解决这个问题,但是我试图搜索它并找不到有关jQuery版本的任何内容。

在一个相关的点上,任何人都可以解释TinyMCE jQuery插件是什么以及它与上述有什么关系?我认为这可能是我理解中的差距。

非常感谢

3 个答案:

答案 0 :(得分:33)

几个星期前我遇到了同样的问题。您不需要使用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",
   ...
})

除此之外,我认为它们基本相同。

答案 1 :(得分:8)

tinymce jQuery版本使开发人员能够使用关于tinymce编辑器的jQuery命令。我强烈建议任何听不使用jQuery构建的tinymce并坚持使用常规tinymce版本的人。原因很简单:使用jQuery版本创建其他对象和元素的开销并没有减轻其好处。如果使用自己的tinymce插件与几个keyevent处理程序,我发现jQuery tinymce版本花了很长时间来处理许多快速键盘笔划(导致编辑器中字母的外观延迟)。 这里的方法是使用常规的tinymce构建并在主文档上加载常规jQuery。然后可以使用jQuery访问tinymce和地址html元素。

答案 2 :(得分:5)

鉴于jQuery“版本”与jQuery“插件”的混淆,我想我会调查,因为我现在将TinyMCE添加到MVC jQuery项目中。

我在一个项目中安装了Exphox(原始JS版本)的原始TinyMCE NuGet包,在另一个项目中安装了TinyMCE.jQuery NuGet包。

然后我将文件夹,文件,大小等与Araxis Merge进行比较,然后“美化”缩小的源代码以检查内容。

以下是NuGet结果:

NuGet包是相同的,但单个jquery.tinymce.min.js文件除外,该文件已添加到TinyMCE.jQuery NuGet包中。

jQuery文件只是一个将MCE应用于jQuery元素的直接插件!

因此,就NuGet包而言,jQuery版本只不过是一个在jQuery元素上实现TinyMCE的插件。没别了!

这违反了此处http://www.tinymce.com/tryit/3_x/jquery_version.php所述的评论:

  

此示例加载TinyMCE的特定jQuery版本,此版本稍微小一点,因为它不包含一些冗余逻辑,例如Sizzle引擎。

相关问题