将TinyMCE字符映射插件与多个配置一起使用

如何解决将TinyMCE字符映射插件与多个配置一起使用

我想在同一编辑器中使用TinyMCE character map plugin并使用不同的字符集。

例如,一个工具栏按钮显示带有数学符号的字符映射,另一个显示箭头。

TinyMCE字符映射插件具有charmap configuration option来覆盖默认字符映射:

tinymce.init({
  selector: 'textarea',// change this value according to your HTML
  plugins: 'charmap',toolbar: 'charmap',menubar: 'insert',charmap: [
    [0x2615,'morning coffee']
  ]
});

如何根据我用来触发弹出窗口的工具栏按钮来配置charmap

我正在考虑以下方法:1)编辑器初始化后在运行时配置charmap或2)将现有插件“复制”为charmap2并分别进行配置。

解决方法

这是一个很好的问题。我有很多时间使用TinyMCE,却忘记了它的强大程度。我不得不为这本草稿手册,但是...

有一种方法可以一次添加两个按钮(或任意多个) 并将所需的任何图标分配给每个按钮。

您可以在editor.addButton() 设置回调中使用TinyMCE方法。这是一个如何做的例子:

const myCharMap = {};
myCharMap.Math = [
  [0x223A,'GEOMETRIC PROPORTION'],[0x223B,'HOMOTHETIC'],[0x223C,'TILDE OPERATOR'],[0x223D,'REVERSED TILDE'],[0x223E,'INVERTED LAZY S'],[0x223F,'SINE WAVE'],[0x2240,'WREATH PRODUCT'],[0x2241,'NOT TILDE'],[0x2242,'MINUS TILDE'],[0x2243,'ASYMPTOTICALLY EQUAL TO'],[0x2244,'NOT ASYMPTOTICALLY EQUAL TO'],[0x2245,'APPROXIMATELY EQUAL TO'],[0x2246,'APPROXIMATELY BUT NOT ACTUALLY EQUAL TO'],[0x2247,'NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO'],[0x2248,'ALMOST EQUAL TO'],[0x2249,'NOT ALMOST EQUAL TO'],[0x224A,'ALMOST EQUAL OR EQUAL TO'],[0x224B,'TRIPLE TILDE'],[0x224C,'ALL EQUAL TO'],[0x224D,'EQUIVALENT TO'],[0x224E,'GEOMETRICALLY EQUIVALENT TO'],[0x224F,'DIFFERENCE BETWEEN'],[0x2250,'APPROACHES THE LIMIT'],[0x2251,'GEOMETRICALLY EQUAL TO'],[0x2252,'APPROXIMATELY EQUAL TO OR THE IMAGE OF'],[0x2253,'IMAGE OF OR APPROXIMATELY EQUAL TO'],[0x2254,'COLON EQUALS'],[0x2255,'EQUALS COLON'],[0x2256,'RING IN EQUAL TO'],[0x2257,'RING EQUAL TO'],[0x2258,'CORRESPONDS TO'],[0x2259,'ESTIMATES'],[0x225A,'EQUIANGULAR TO'],[0x225B,'STAR EQUALS'],[0x225C,'DELTA EQUAL TO'],[0x225D,'EQUAL TO BY DEFINITION'],[0x225E,'MEASURED BY'],[0x225F,'QUESTIONED EQUAL TO'],[0x2260,'NOT EQUAL TO'],[0x2261,'IDENTICAL TO'],[0x2262,'NOT IDENTICAL TO'],[0x2263,'STRICTLY EQUIVALENT TO'],[0x2264,'LESS-THAN OR EQUAL TO'],[0x2265,'GREATER-THAN OR EQUAL TO'],[0x2266,'LESS-THAN OVER EQUAL TO'],[0x2267,'GREATER-THAN OVER EQUAL TO'],[0x2268,'LESS-THAN BUT NOT EQUAL TO'],[0x2269,'GREATER-THAN BUT NOT EQUAL TO'],[0x226A,'MUCH LESS-THAN'],[0x226B,'MUCH GREATER-THAN'],[0x226C,'BETWEEN'],[0x226D,'NOT EQUIVALENT TO'],[0x226E,'NOT LESS-THAN'],[0x226F,'NOT GREATER-THAN'],[0x2270,'NEITHER LESS-THAN NOR EQUAL TO'],[0x2271,'NEITHER GREATER-THAN NOR EQUAL TO'],[0x2272,'LESS-THAN OR EQUIVALENT TO'],[0x2273,'GREATER-THAN OR EQUIVALENT TO'],[0x2274,'NEITHER LESS-THAN NOR EQUIVALENT TO'],[0x2275,'NEITHER GREATER-THAN NOR EQUIVALENT TO'],[0x2276,'LESS-THAN OR GREATER-THAN'],[0x2277,'GREATER-THAN OR LESS-THAN'],[0x2278,'NEITHER LESS-THAN NOR GREATER-THAN'],[0x2279,'NEITHER GREATER-THAN NOR LESS-THAN'],[0x227A,'PRECEDES'],[0x227B,'SUCCEEDS'],[0x227C,'PRECEDES OR EQUAL TO'],[0x227D,'SUCCEEDS OR EQUAL TO'],[0x227E,'PRECEDES OR EQUIVALENT TO'],[0x227F,'SUCCEEDS OR EQUIVALENT TO'],[0x2280,'DOES NOT PRECEDE'],[0x2281,'DOES NOT SUCCEED'],[0x2282,'SUBSET OF'],[0x2283,'SUPERSET OF'],[0x2284,'NOT A SUBSET OF'],[0x2285,'NOT A SUPERSET OF'],[0x2286,'SUBSET OF OR EQUAL TO'],[0x2287,'SUPERSET OF OR EQUAL TO'],[0x2288,'NEITHER A SUBSET OF NOR EQUAL TO'],[0x2289,'NEITHER A SUPERSET OF NOR EQUAL TO'],[0x228A,'SUBSET OF WITH NOT EQUAL TO'],[0x228B,'SUPERSET OF WITH NOT EQUAL TO'],[0x228C,'MULTISET'],[0x228D,'MULTISET MULTIPLICATION'],[0x228E,'MULTISET UNION'],[0x228F,'SQUARE IMAGE OF'],[0x2290,'SQUARE ORIGINAL OF'],[0x2291,'SQUARE IMAGE OF OR EQUAL TO'],[0x2292,'SQUARE ORIGINAL OF OR EQUAL TO'],[0x2293,'SQUARE CAP'],[0x2294,'SQUARE CUP'],[0x2295,'CIRCLED PLUS'],[0x2296,'CIRCLED MINUS'],[0x2297,'CIRCLED TIMES'],[0x2298,'CIRCLED DIVISION SLASH'],[0x2299,'CIRCLED DOT OPERATOR'],[0x229A,'CIRCLED RING OPERATOR'],[0x229B,'CIRCLED ASTERISK OPERATOR'],[0x229C,'CIRCLED EQUALS'],[0x229D,'CIRCLED DASH'],[0x229E,'SQUARED PLUS'],[0x229F,'SQUARED MINUS'],[0x22A0,'SQUARED TIMES'],[0x22A1,'SQUARED DOT OPERATOR'],[0x22A2,'RIGHT TACK'],[0x22A3,'LEFT TACK'],[0x22A4,'DOWN TACK'],[0x22A5,'UP TACK'],[0x22A6,'ASSERTION'],[0x22A7,'MODELS'],[0x22A9,'FORCES'],[0x22AA,'TRIPLE VERTICAL BAR RIGHT TURNSTILE'],[0x22AB,'DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE'],[0x22AC,'DOES NOT PROVE'],[0x22AD,'NOT TRUE'],[0x22AE,'DOES NOT FORCE'],[0x22AF,'NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE'],[0x22B0,'PRECEDES UNDER RELATION'],[0x22B1,'SUCCEEDS UNDER RELATION'],[0x22B2,'NORMAL SUBGROUP OF'],[0x22B3,'CONTAINS AS NORMAL SUBGROUP'],[0x22B4,'NORMAL SUBGROUP OF OR EQUAL TO'],[0x22B5,'CONTAINS AS NORMAL SUBGROUP OR EQUAL TO'],[0x22B6,'ORIGINAL OF'],[0x22B7,'IMAGE OF'],[0x22B8,'MULTIMAP'],[0x22B9,'HERMITIAN CONJUGATE MATRIX'],[0x22BA,'INTERCALATE'],[0x22BB,'XOR'],[0x22BC,'NAND'],[0x22BD,'NOR'],[0x22BE,'RIGHT ANGLE WITH ARC'],[0x22BF,'RIGHT TRIANGLE'],[0x22C0,'N-ARY LOGICAL AND'],[0x22C1,'N-ARY LOGICAL OR'],[0x22C2,'N-ARY INTERSECTION'],[0x22C3,'N-ARY UNION']
];
myCharMap.Coffee = [
  [0x2615,'morning coffee']
];
tinymce.init({
  selector: '#mytextarea',theme: 'modern',menubar: 'insert',plugins: [
    'advlist autolink lists link image charmap print preview anchor','searchreplace visualblocks code fullscreen','insertdatetime table contextmenu paste code'
  ],toolbar1: 'insertfile undo redo | styleselect | bold italic | bullist numlist outdent indent | fontsizeselect | coffee | math',setup: function(editor) {
    editor.addButton('coffee',{
      icon: 'charmap',tooltip: "Coffee Symbol!!!",onclick: function() {
        editor.settings.charmap = myCharMap.Coffee;
        editor.execCommand('mceShowCharmap');
      }
    });
    editor.addButton('math',tooltip: "Math Symbols!!!",onclick: function() {
        editor.settings.charmap = myCharMap.Math;
        editor.execCommand('mceShowCharmap');
      }
    });
  }
});

您可以在此Fiddle

中检查以上代码 ,

您可以在加载之前更改设置,方法是:

function getMap(){
  if (true){
     return [
       [0x2615,'morning coffee']
     ];
  } else {
     return [
       [0x2616,'evening coffee']
     ];
  }
}

tinymce.init({
  ....
  charmap: getMap()
});

要在加载后更改设置,您可以执行以下操作:

tinymce.init({
  ....
  charmap: [
     [0x2615,'morning coffee']
  ]
});

//As an example,we can use setTimeout.
setTimeout(function(){
    tinymce.settings.charmap = [
      [0x2615,'morning coffee'],[0x2616,'day'],[0x2617,'tunaaaaa']
    ];
},5000);

编辑:Codepen:https://codepen.io/Terrafire123/pen/rNeqazr

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res