javascript - 如何收听在tinymce中选择的文本?
问题描述
我正在尝试从tinymce获取文本选择事件,我做的方式如下
const editor = global["tinymce"].activeEditor;
editor.on("NodeChange", e => {
const selectedText = editor.selection.getContent({ format: "text" });
});
在包含此代码之前, wordpress已经加载了 Tinymce ,我面临的问题是 NodeChange 事件未在编辑器实例上触发。我不想为此创建一个 tinymce 插件,这可能不创建插件吗?如果我通过控制台添加它,我在这里粘贴的代码实际上可以工作,当我正常加载它时我错过了一些东西
解决方案
我的猜测是你有时间问题。在 TinyMCE 完全初始化之前,编辑器不是“活动的”。如果您尝试调用:
const editor = global["tinymce"].activeEditor;
...在编辑器完全初始化之前,editor
变量很可能是null
.
WordPress 有多种挂钩可让您调整 TinyMCE 配置,这可能是一种更可靠的方式来做您想做的事情。您绝对可以使用 TinyMCE 配置中的设置功能来添加您的 NodeChange 代码。
将其打包到 WordPress 插件中肯定会更容易部署/更新您的解决方案,但这不是必需的。
推荐阅读
- reactjs - 使用反应从firebase接收空数据
- ipopt - 满足所有条件时,Ipopt 不会触发终止
- vue.js - 如果我使用变量,vee-validate MM/yy|date_between 不起作用
- database - Postgres pg_stat_database 指标看似不正确
- scala - 根据最大 Spark Scala 替换列值
- python - how is this code working? backtracking and recursion
- java - 如何使用 WireMock 模拟带有 Protobuf (gRPC) 响应的上游服务
- c# - 使用 CI/CD 为 azure 函数设置事件中心的连接字符串
- google-chrome - 在 chrome 上使用 service worker 时,从内存缓存中提供脚本文件
- php - Docker 数据库错误 SQLSTATE[HY000] [2002] 没有这样的文件或目录