javascript - WP - JS - 获取 Tinymce 编辑器的实例

标签 javascript jquery wordpress tinymce

我正在创建一个 Wordpress 插件,它添加了一个 metabox就在包含按钮的帖子编辑器下方。该插件还在结束 </body> 的正下方加载了一个 Javascript 文件。标签。

目的

目前,我试图通过插件实现的目标很简单。当用户向编辑器输入内容,然后点击metabox内的按钮时,我想修改编辑器的内容。

JS 代码

最简单的形式:

jQuery(document).ready(function($) {
   $('#button').on('click', function(e) {
      e.preventDefault();

      var editor = tinyMCE.get("content");
      editor.setContent(some_content);
   });
});

问题

问题是 editor可变返回 undefined .

FIREBUG(尝试设置 var editor 时)

wpActiveEditor :“内容”
editors : [ ]
activeEditor : 空

我尝试了什么

我已经尝试了在 Tinymce 的文档和 Stackoverflow 上找到的很多很多东西(还有很多小的调整),但问题仍然存在。

如有任何帮助,我们将不胜感激。

附言。运行我的测试时,内容文本区域是可见的。

最佳答案

当编辑器首次加载并激活“文本”模式时,tinymce 不会被初始化,因此您不能使用 tinyMCE.get(),这与“视觉”模式相反。

(我没有注意到它实际上在“视觉”模式下工作,因为我一直在“文本”模式下测试它)

因此,需要一个条件语句来首先确定哪个选项卡处于事件状态。我用这个方法解决了我的问题:

function setEditorContent(val) {
  var $_editorTextArea = $('#content');
  $_editorTextArea.is(':visible') ? $_editorTextArea.val(val) : tinyMCE.get('content').setContent(val);
}

希望这个答案能避免一些麻烦 :)

关于javascript - WP - JS - 获取 Tinymce 编辑器的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16678950/

相关文章:

javascript - 预检响应具有无效的 HTTP 状态代码 : 401 angular

javascript - 如何在html网页中添加 'show/hide content'选项?

javascript - 有条件地从数据库中按多列获取行的函数

javascript - php 密码脚本和 javascript 刷新冲突,发出我想消除的表单重新提交消息

jquery - 如何在按下鼠标按钮时而不是释放鼠标按钮时触发 Jquery .on() 函数。

php - 如果在 Woocommerce 上的 URL 中手动更改订单 key ,则会显示错误,谢谢

javascript - 如何根据所选选项调用实例方法?

javascript - bootstrap.js Accordion 活跃指数?

javascript - 仅存在一个标记时 Google map 信息窗口打开

php - 修改 WordPress 中的 RSS 节点