首页 > 解决方案 > 如何收听在tinymce中选择的文本?

问题描述

我正在尝试从tinymce获取文本选择事件,我做的方式如下

const editor = global["tinymce"].activeEditor;
editor.on("NodeChange", e => {
  const selectedText = editor.selection.getContent({ format: "text" });

});

在包含此代码之前, wordpress已经加载了 Tinymce ,我面临的问题是 NodeChange 事件未在编辑器实例上触发。我不想为此创建一个 tinymce 插件,这可能不创建插件吗?如果我通过控制台添加它,我在这里粘贴的代码实际上可以工作,当我正常加载它时我错过了一些东西

标签: javascripttinymce

解决方案


我的猜测是你有时间问题。在 TinyMCE 完全初始化之前,编辑器不是“活动的”。如果您尝试调用:

const editor = global["tinymce"].activeEditor;

...在编辑器完全初始化之前,editor变量很可能是null.

WordPress 有多种挂钩可让您调整 TinyMCE 配置,这可能是一种更可靠的方式来做您想做的事情。您绝对可以使用 TinyMCE 配置中的设置功能来添加您的 NodeChange 代码。

将其打包到 WordPress 插件中肯定会更容易部署/更新您的解决方案,但这不是必需的。


推荐阅读