TinyMCE 处于只读模式时启用按钮

2023-11-27

我有一个 TinyMCE 4.x 实例,其中文本应处于只读模式。但我仍然有一些想要启用的按钮。例如,一个按钮可以提供我选择的文本部分的字符计数。 但是当我打开 TinyMCE 的只读模式时,所有按钮都被禁用。我可以只启用我的按钮,同时仍保留只读模式吗?


对您来说可能已经太晚了,但其他人可能会经过这里。

我想出了这个函数

function enableTinyMceEditorPlugin(editorId, pluginName, commandName) {
    var htmlEditorDiv = document.getElementById(editorId).previousSibling;
    var editor = tinymce.get(editorId);
    var buttonDiv = htmlEditorDiv.querySelectorAll('.mce-i-' + pluginName.toLowerCase())[0].parentElement.parentElement;
    buttonDiv.className = buttonDiv.className.replace(' mce-disabled', '');
    buttonDiv.removeAttribute('aria-disabled');
    buttonDiv.firstChild.onclick = function () {
        editor.execCommand(commandName);
    };
}

它通过两个步骤完成了这个技巧:

  • 使按钮可点击(删除mce-disabledCSS 类并删除aria-disabled财产)
  • 将好的命令分配给单击事件

在我的编辑器中init事件我调用该函数。

editor.on('init', function () {
    if (readOnly) {
        editor.setMode('readonly');
        enableTinyMceEditorPlugin(htmlEditorId, 'preview', 'mcePreview');
        enableTinyMceEditorPlugin(htmlEditorId, 'code', 'mceCodeEditor');
    }
});

我为其编写此代码的 TinyMCE 当前版本是 4.4.3。它可能会在未来版本中出现问题,特别是关于获取和修改良好 HTML 元素的选择器。

命令标识符可以在以下位置找到这一页否则你也可以在下面找到它们tinymce\plugins\PluginName\plugin(.min).js

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TinyMCE 处于只读模式时启用按钮 的相关文章

  • 解决错误 413 请求实体太大

    我正在从事的项目允许我们的员工将大文件上传到我们的共享主机并获取下载链接 问题是我们的托管拒绝更改共享托管的 LimitRequestBody 还有其他解决方案可以解决 LimitRequestBody 或任何其他方法来完成这项工作吗 有两
  • 如何通过单击链接并确认弹出窗口来检查两个条件?

    我是 JavaScript 新手 有 2 个 html 链接 li a class dropdown item confirm href wtdata a li li a class dropdown item confirm href f
  • 尝试为每一行编写测试用例

    已经编写了跳跃方法的测试用例 但当我看到代码覆盖率报告时 它不会进入onloadend方法seat onloadend 在 createSpyObj 中我调用了 loadend 但它仍然没有进入内部 你们能告诉我如何解决它吗 下面提供我的代
  • JavaScript 承诺混乱

    我正在尝试理解 javascript Promise 的概念 但我遇到了一些问题 我在本地设置了一个非常小的Web服务 不要生气 该Web服务不符合约定 这里有一些关于它的细节 login
  • 使用 classed("active",true) 鼠标悬停时 D3 颜色变化

    我是 js 和 D3 的新手 我已经生成了某种热图 并且想使用 D3 的 on mouseover 更改图块的颜色 我可以显式更改颜色 但想使用 CSS 活动规则 可能是一些简单的东西可以修复 任何帮助将不胜感激 完整代码如下 Thanks
  • 如何突出显示 html 文档中文本查询的搜索结果而忽略 html 标签?

    我有一个字符串 其中包含 html 内容 像这样的东西 const text My name is Alan and I span an span div class someClass artist div 我使用以下命令在反应组件中渲染
  • 从请求响应创建 PDF 不适用于 axios,但适用于本机 xhr

    为了强制从服务器下载 PDF 我尝试使用 axios 和本机 xhr 对象 原因是我必须发送post请求 因为我向服务器传递了太多数据 所以带有简单链接的选项 例如site ru download pdf对我不起作用 尽管我最终设法用 Xh
  • 使用 javascript 在 IFrame 中打印 PDF 文件仅获取一页

    这是我打印 pdf 文件的代码 在这里 在打印时我只得到一页 我需要一个解决方案 function printPdf var ifr document getElementById frame1 PDF is completely load
  • 当位置从相对固定变为固定时,div 的宽度会发生变化

    当 div topNav 的位置样式从相对更改为固定时 其宽度会更改几个像素 我找到了一个 jquery 插件 http imakewebthings github com jquery waypoints 它可以优雅地执行我正在寻找的相同
  • 正则表达式匹配除括号中的单词之外的所有单词 - javascript

    我使用以下正则表达式来匹配所有单词 mystr replace W s g function match p1 index title 请注意 单词可以包含特殊字符 例如德语变音符号 如何匹配除括号内的单词之外的所有单词 如果我有以下字符串
  • 正则表达式问题 - 在字符串中查找数字

    我目前正在使用 JavaScript 从字段中获取字符串 在该字段中通常会有 宽度 56 空隙 67 我需要做的是识别 1 440 范围内的两个数字 并将它们放入两个不同的字段中 字段 1 宽度 字段 2 无效 我已经研究过正则表达式 到目
  • “调用”C:\Program Files\nodejs\\node.exe”错误

    我一直在尝试安装节点js并安装浏览器同步 C Users Aly gt npm install g browser sync CALL C Program Files x86 nodejs node exe C Program Files
  • 如何以编程方式确定 HTML 对象可以侦听哪些事件?

    我一直在查看developer mozilla org 和Apple 开发文档上的文档 但我找不到解释是否可以通过编程方式确定特定HTML 标记是否支持给定事件监听器的文档 就像我知道的那样
  • 量角器检查元素是否不存在

    我在基于角度的网站中有一个设置可以打开和关闭下拉菜单 如果关闭 则不会显示在主页上 对于量角器 我需要检查开关关闭时该元素是否不存在 但是 我不应该陷入 未找到元素 错误 因为它是一组许多测试中的一个 我该怎么做 我曾尝试这样做 expec
  • Phantomjs page.content 未检索页面内容

    我使用 Phantomjs 来抓取使用 JavaScript 和 Ajax 加载动态内容的网站 我有以下代码 var page require webpage create page onError function msg trace v
  • 设置 D3 力定向图

    致尊敬的读者 我对 javascript 相当陌生 我也遇到过这个问题 我正在尝试实现这个力导向图的修改版本 http mbostock github com d3 ex force html http mbostock github co
  • 如何检查令牌过期和注销用户?

    当用户单击注销按钮时 他 她可以自己注销 但是如果令牌过期 他 她就无法注销 因为在我的应用程序中 令牌在服务器端和前端都使用 当用户单击注销按钮时 如果令牌有效 则服务器和浏览器中的令牌都会被清除 当用户未注销并且他 她的令牌过期但未在浏
  • 需要在 javascript 中对 ajax 查询进行正确的修剪吗?

    在 JavaScript 中 我想对字符串末尾的所有特殊字符进行正确的修剪 我的一段代码仅对连字符 进行修剪 还需要所有特殊字符 var s DB var x s replace console log x 对此有什么帮助吗 这应该可以解决
  • 访问影子 DOM 中的元素

    是否有可能查找 Shadow DOM 中的元素与蟒蛇硒 示例用例 我有这个input with type date
  • AngularJS 中的全局模拟对象用于 jasmine/karma 测试

    我有一个正在模拟进行单元测试的对象 基本上在我的测试文件中 我将其模拟如下 var mockObject mockMethod1 function return true mockMethod2 function return true b

随机推荐

  • Ruby 中的有限矩阵

    怎么来的Matrix类没有方法来编辑其向量和组件吗 似乎矩阵内的所有内容都可以读取但不能写入 我错了吗 有没有第三方优雅的Matrix 类似的类允许我删除行并有意编辑它们 如果没有这样的课程 请通知我 我将停止搜索 班级设计师Matrix一
  • 在将用户输入的 PHP 代码传递给 eval() 之前验证它

    在将字符串传递给 eval 之前 我想确保语法正确并允许 两个函数 a 和 b 四个运算符 括号 数字 1 2 1 1 我该如何做到这一点 也许它与 PHP Tokenizer 有关 我实际上正在尝试制作一个简单的公式解释器 因此 a 和
  • 瓦提尔。滚动到页面的某一点

    我正在尝试在网站上自动进行在线调查 但每次都会收到此错误 Selenium WebDriver Error UnknownError unknown error Element is not clickable at point 561 8
  • 如何使用maven部署带有依赖jar的Applet并对其进行签名?

    有人可以告诉我 pom 文件应该是什么样子来创建一个带有小程序的 jar 文件 该文件依赖于其他一些 jar 是否可以将一个 jar 作为小程序 以及如何对其进行签名 如果你想要你的课程and出现在的依赖项一个 jar 文件 你应该使用组装
  • Chrome 开发工具设置中没有“覆盖”页面

    如何在我的设置中启用覆盖面板 我打开 Chrome 浏览器 它就消失了 我浪费了大部分时间试图让它工作 但谷歌上有 0 个答案 谢谢 Chrome 让我的设置消失 酷 仿真 面板是新的 覆盖 面板
  • Gmail 上下文小工具

    我想问题一是 现在是否真的可以为 gmail 创建一个上下文小工具 在过去的两天里 我仔细阅读了 非常过时的 文档 以及我能找到的关于该主题的每个论坛帖子 我已经尝试了所有方法 但什么也没看到 甚至没有任何可能为我指明正确方向的错误消息提示
  • 绑定变量和替换变量(我使用 && 输入)之间有什么区别?

    这两个变量声明有什么区别 1 num number num 2 variable num1 number 因为在这两种情况下我都可以参考num通过使用 num or num在其他文件中也 对于绑定变量 num1 此外 我还有一个困惑 以下任
  • C# 数组从一行中拆分获取最后一项

    我知道这可以获取数组的第一项 string aString hello all this is a test string firstItemOfSplit aString Split new char 0 firstItemOfSplit
  • 如何使用 JPA 设置 Eclipselink?

    The Eclipselink 文档说我需要在 pom xml 中包含以下条目才能使用 Maven 获取它
  • 将带有多个分隔符的文本导入 pandas

    我有一些数据看起来像这样 c stuff c more header c begin data 1 1 5 1 2 6 5 1 3 5 3 我想将其导入到 3 列数据框中 其中列例如 a b c 1 1 0 5 etc 我一直在尝试将数据读
  • 私有函数 didFinishLaunchingWithOptions 没有被调用? (斯威夫特 3)

    Isn t didFinishLaunchingWithOptions应该在应用程序第一次开始运行时调用 我在此方法中设置了一个断点 当我在模拟器中运行应用程序时 断点不会被命中 这意味着该方法不会被调用 每当应用程序启动时 我都会尝试从
  • 在 MongoDB 中缓存重复查询结果

    我将构建一个旨在被大量 查看 的页面 但很少有用户会 写入 数据库 例如 只有百分之一的用户可能会在我的网站上发布他的新闻 其余的只会阅读新闻 在上面的例子中 当他们访问我的主页时会执行100个SAME QUERIES 而实际的数据库变化很
  • 有什么方法可以区分主线程和它生成的任何线程吗?

    我知道getName 主线程上的函数将返回字符串main 但这可以改变setName 有没有办法始终确定应用程序的主线程 一种可能性是致电Thread currentThread 开始时main 并保留参考
  • 为什么需要将项目合规性更改为 1.5?

    我在eclipse上用maven2创建了一个项目 添加 hibernate annotations 依赖项后 我尝试使用 hibernate 注释 Entity Table 创建一个类 但它给了我这个错误 将项目合规性和 JRE 更改为 1
  • Java 替换文本文件中的行

    我从另一个问题中找到了这段代码 private void updateLine String toUpdate String updated throws IOException BufferedReader file new Buffer
  • 基于Mysql json的趋势标签实现

    我正在尝试使用 mysql json 功能来识别时间序列上的趋势标签 基于最大点击量 下面是我的桌子 CREATE TABLE TAG COUNTER account varchar 36 NOT NULL time id INT NOT
  • 9 块图像作为背景的问题

    我有一个列表视图结构 具有使用的相对布局 奇数 偶数元素交替背景图像 我正在尝试设置 通过计算位置动态绘制背景 它 与普通位图一起工作得很好 但是当我尝试使用 ninepatch 图像它破坏了用户界面 所有元素都扭曲了 什么 我做错了吗 这
  • 帮助了解像素化算法背后的理论吗?

    假设我有一张想要 像素化 的图像 我想要这个由 100 x 100 方格网格表示的清晰图像 因此 如果原始照片为 500 px X 500 px 则每个正方形为 5 px X 5 px 因此 每个正方形都有一个与它交换的 5 px X 5
  • Angular ReactiveForms:生成复选框值数组?

    给定绑定到相同复选框的列表formControlName 如何生成绑定到的复选框值数组formControl 而不是简单地true false Example
  • TinyMCE 处于只读模式时启用按钮

    我有一个 TinyMCE 4 x 实例 其中文本应处于只读模式 但我仍然有一些想要启用的按钮 例如 一个按钮可以提供我选择的文本部分的字符计数 但是当我打开 TinyMCE 的只读模式时 所有按钮都被禁用 我可以只启用我的按钮 同时仍保留只