【问题标题】:How do i use TinyMCE jQuery package and what is the difference with TinyMCE jQuery plugin我如何使用 TinyMCE jQuery 包,与 TinyMCE jQuery 插件有什么区别
【发布时间】:2014-01-29 14:45:15
【问题描述】:

我看过这篇帖子 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 插件是什么以及它与上述内容的关系?我认为这可能是我理解的差距。

提前非常感谢

【问题讨论】:

    标签: jquery tinymce tinymce-4


    【解决方案1】:

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

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

    【讨论】:

    • 我也同意@Thariama 的回复,真的没有太多额外的好处
    • 感谢您的回答 - 这比文档中的任何内容都清晰得多,现在我很高兴我没有错过使用标准版本。我仍然不完全确定“jQuery 版本”和“jQuery 插件”之间的区别 - 这些术语基本上是同义词吗?
    • @Andy:根据您的评论,我调查了“差异”,发现似乎不存在 jQuery“版本”。只是一个简单的 jQuery“插件”来包装 JS 控件。新答案中添加了详细信息。当我发现更多信息时会更新它。
    • 感谢包含 jquery 桥接文件也解决了我的问题。
    【解决方案2】:

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

    【讨论】:

    • 主要卖点是 jQuery“构建”(不是包装器)应该比原始 JS 版本更小,因为它使用 jQuery 和 jQuery 的 Sizzle 而不是复制两者的功能。显然,使用 jQuery可能会增加运行时开销如果没有最佳实现
    【解决方案3】:

    考虑到对 jQuery“版本”与 jQuery“插件”的混淆,我虽然现在正在将 TinyMCE 添加到 MVC jQuery 项目中,但我会进行调查。

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

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

    这里是 NuGet 结果:

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

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

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

    这与此处找到的 cmets http://www.tinymce.com/tryit/3_x/jquery_version.php 的状态相悖:

    这个例子加载了一个特定的 jQuery 版本的 TinyMCE 这个版本有点小,因为它不包含一些冗余逻辑,比如 Sizzle 引擎。

    【讨论】:

    • 谢谢,很高兴知道 - 拥有相同事物的 2 个变体总是让我感到害怕。我想当我 18 个月前写原始问题时,可能有 2 个变体。
    • @Andy:要么就是这样,要么 TinyMCE 网站上有很多“一厢情愿”的 cmets :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 2013-02-01
    • 1970-01-01
    相关资源
    最近更新 更多