javascript - 如何判断页面上是否启动/创建了TinyMCE?

标签 javascript jquery tinymce tinymce-4

我有一个带有 Canvas 的页面,用户可以使用“添加文本”按钮添加文本。当用户单击此按钮时,将在 Canvas 上创建一个新的 TinyMCE。我想更改这个新的 TinyMCE,但是因为我无法访问tinyMCE 创建代码(init),所以我必须在我的“document.ready()”中为 TinyMCE 提供某种“on init 监听器”。

我知道你可以像这样在 TinyMCE 的 init 上进行回调:

setup: function (ed) {
    ed.on('init', function(args) {
        console.debug(args.target.id);
    });
}

但正如我所说,我无法访问 TinyMCE 的创建代码。

如何检查是否已创建新的 TinyMCE 实例(并在 Javascript 中使用它)?

最佳答案

如果您的页面为您提供了一个配置对象,但您想要调整其设置,您始终可以使用 JavaScript 逐页修改/扩展您的标准 init。

例如,从标准配置开始:

baseConfig = {
    selector: 'textarea'
    ....
}

...因为这只是一个简单的 JavaScript 对象,所以您可以在使用它初始化 TinyMCE 之前向该对象注入(inject)其他属性/方法。

例如:

 customConfig = {
    image_advtab: true,
    content_css : "CSS/content.css?"  + new Date().getTime(),
    setup: function (editor) {
        editor.on('init', function () {
            //Do what you need to do once TinyMCE is initialized
        });
    }
}

然后您可以将customConfig“注入(inject)”到baseConfig中。最简单的方法是使用 jQuery 的扩展方法:

$.extend(baseConfig, customConfig);

...这将从 customConfig 中获取所有方法和属性,并将它们添加到 baseConfig 中。完成后,您可以使用新更新的 baseConfig 加载 TinyMCE:

tinymce.init(baseConfig);

您还可以使用 JavaScript 删除属性(阅读删除),这样您也可以删除 TinyMCE init 中不需要的配置属性。

关于javascript - 如何判断页面上是否启动/创建了TinyMCE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38498316/

相关文章:

javascript - 比较字符串中的单词

JQuery Sortable - 从 "update"事件中禁用 "receive"事件?

javascript - 我可以防止 Chrome (v45) 在 promise 被拒绝时暂停吗?

javascript - 如何在 Flotr2 多轴图表中的 Y-2 轴标签和标题之间提供空间

javascript - 如何在 javascript 中实现异步编程( promise )? javascript 不是 ui 线程环境吗?

php - 在 PHP 中从数据库中删除 TinyMCE 格式

html - 用户滚动时如何在所选下拉按钮旁边添加下拉列表菜单?

javascript - NodeJS : Cannot call method 'push' of undefined

javascript - 特定网页上的 jQuery 目标 $(window)

internet-explorer - TinyMCE - 在 IE 中的光标位置插入内容不起作用