我看过这篇帖子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插件是什么以及它与上述有什么关系?我认为这可能是我理解中的差距。
非常感谢
答案 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包是相同的,但单个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引擎。