首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

动态更改TinyMCE配置

TinyMCE 是一个流行的基于 JavaScript 的富文本编辑器,允许用户在网页上进行文本编辑。动态更改 TinyMCE 的配置可以通过多种方式实现,具体取决于你需要更改的配置项和应用场景。以下是一些常见的方法:

方法 1: 重新初始化 TinyMCE

一种简单的方法是销毁现有的 TinyMCE 实例,然后使用新的配置重新初始化它。这种方法适用于需要大规模更改配置的情况。

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TinyMCE Dynamic Configuration</title>
    <script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/5/tinymce.min.js" referrerpolicy="origin"></script>
</head>
<body>
    <textarea id="mytextarea">Hello, World!</textarea>
    <button id="changeConfig">Change Config</button>

    <script>
        // 初始化 TinyMCE
        tinymce.init({
            selector: '#mytextarea',
            plugins: 'lists link image',
            toolbar: 'undo redo | bold italic | alignleft aligncenter alignright | bullist numlist outdent indent | link image'
        });

        document.getElementById('changeConfig').addEventListener('click', function() {
            // 销毁现有的 TinyMCE 实例
            tinymce.get('mytextarea').remove();

            // 使用新的配置重新初始化 TinyMCE
            tinymce.init({
                selector: '#mytextarea',
                plugins: 'code',
                toolbar: 'code'
            });
        });
    </script>
</body>
</html>

方法 2: 动态更改特定配置项

对于某些配置项,可以直接通过 TinyMCE 的 API 动态更改,而不需要重新初始化。例如,可以动态更改工具栏的内容:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TinyMCE Dynamic Configuration</title>
    <script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/5/tinymce.min.js" referrerpolicy="origin"></script>
</head>
<body>
    <textarea id="mytextarea">Hello, World!</textarea>
    <button id="changeToolbar">Change Toolbar</button>

    <script>
        // 初始化 TinyMCE
        tinymce.init({
            selector: '#mytextarea',
            plugins: 'lists link image',
            toolbar: 'undo redo | bold italic | alignleft aligncenter alignright | bullist numlist outdent indent | link image'
        });

        document.getElementById('changeToolbar').addEventListener('click', function() {
            // 获取 TinyMCE 实例
            var editor = tinymce.get('mytextarea');

            // 动态更改工具栏配置
            editor.ui.registry.addToolbarButton('mybutton', {
                text: 'My Button',
                onAction: function () {
                    editor.insertContent('&nbsp;<strong>It\'s my button!</strong>&nbsp;');
                }
            });

            editor.ui.registry.addContextToolbar('textselection', {
                predicate: function (node) {
                    return !editor.selection.isCollapsed();
                },
                items: 'mybutton | bold italic | link',
                position: 'selection',
                scope: 'node'
            });

            editor.ui.registry.addContextToolbar('image', {
                predicate: function (node) {
                    return node.nodeName.toLowerCase() === 'img';
                },
                items: 'alignleft aligncenter alignright | imageoptions',
                position: 'node',
                scope: 'node'
            });

            // 重新渲染工具栏
            editor.ui.registry.addContextToolbar('textselection', {
                predicate: function (node) {
                    return !editor.selection.isCollapsed();
                },
                items: 'mybutton | bold italic | link',
                position: 'selection',
                scope: 'node'
            });
        });
    </script>
</body>
</html>

方法 3: 使用 TinyMCE API 动态更改内容

你还可以使用 TinyMCE 的 API 动态更改编辑器的内容和其他属性。例如,动态更改编辑器的内容:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TinyMCE Dynamic Configuration</title>
    <script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/5/tinymce.min.js" referrerpolicy="origin"></script>
</head>
<body>
    <textarea id="mytextarea">Hello, World!</textarea>
    <button id="changeContent">Change Content</button>

    <script>
        // 初始化 TinyMCE
        tinymce.init({
            selector: '#mytextarea'
        });

        document.getElementById('changeContent').addEventListener('click', function() {
            // 获取 TinyMCE 实例
            var editor = tinymce.get('mytextarea');

            // 动态更改编辑器内容
            editor.setContent('<p>This is the new content!</p>');
        });
    </script>
</body>
</html>
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

tinymce 如何实现动态国际化

tinymce 如何实现动态国际化 tinymce 是一个非常强大的富文本编辑器,tinymce是支持开启通过配置 language 来决定 tinymce 的语言版本 例如 下面配置 日文 英文...否则只能得到 最后一个实例的语言版本 但是问题来了 因为 tinymce 的菜单面板 是动态生成 , tinymce 官方 这一块的逻辑并没有考虑到 不同语言实例在 同一页面,【具体,可以近似看成...你可以通过下载tinymce-plugin, 并配置 tp_i18n 为 true 来实现 优雅的同时渲染多语言版本, 实现代码如下: tinymce.init({ language: 'zh_CN...也集成实现了 tinymce动态国际化 通过配置 tp_i18n_langs: true 然后自定义菜单项 加入 tpI18n 来开启此项功能 实现如下 tinymce.init({...动态修改后为韩文 点击查看更多

1.3K30

使用 TinyMCE 编辑器中文语言配置过程

使用 TinyMCE 编辑器中文语言配置过程 ---- TinyMCE是一款易用、且功能强大的所见即所得的富文本编辑器。...TinyMCE的优势: 开源可商用,基于LGPL2.1 插件丰富,自带插件基本涵盖日常所需功能 接口丰富,可扩展性强,有能力可以无限拓展功能 界面好看,符合现代审美 提供经典、内联、沉浸无干扰三种模式...对标准支持优秀(自v5开始) 多语言支持,官网可下载几十种语言 默认的情况下,TinyMCE是使用英文,而且我们下载的TinyMCE软件包默认也是不带中文语言包的,因此我们要单独操作一下。.../langs/zh_CN.js 将语言包解压,将js文件放入tinymce根目录下的langs文件夹中(如不存在就自己新建一个),最后路径形如:XXX/tinymce/langs/zh_CN.js 在TinyMCE...实例配置参数中指定语言: tinymce.init({ selector: '#tinydemo', language:'zh_CN',//注意大小写 }); 然后刷新页面即可使用中文。

3.3K10
  • Python types.MethodType动态更改类方法

    正文 动态编程语言是高级程序设计语言的一个类别,在计算机科学领域已被广泛应用。它是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。...动态语言目前非常具有活力,例如JavaScript便是一个动态语言,除此之外如 PHP 、Ruby 、Python等也都属于动态语言,而 C、C++ 、Java等语言则不属于动态语言。...这就是动态语言的魅力和坑! 这里实际上就是动态给实例绑定属性! 2. ...运行的过程中删除属性、方法 删除的方法: del 对象.属性名 delattr(对象, "属性名") 通过以上例子可以得出一个结论:相对于动态语言,静态语言具有严谨性!...所以,玩动态语言的时候,小心动态的坑! 那么怎么避免这种情况呢? 请使用slots。 5.slots 动态语言:可以在运行的过程中,修改代码。 静态语言:编译时已经确定好代码,运行过程中不能修改。

    2.1K20

    nacos动态配置

    ——《管子》 昨天说了openfeign实现远程调用,今天继续 用nacos作为配置中心实现动态配置 依赖上面已经引入了,直接把官方的demo拿来 不过要注意,我们如果是yml配置的话千万别忘了指定...file-extension: yml application: name: ruben-provider 然后是controller,这里是需要加上@RefreshScope注解实现动态更新配置...${file-extension} prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置...{file-extension} file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。...然后我们加上我们的配置 点击发布 访问http://localhost:8080/config/get接口发现配置更改 我们再编辑 然后再次请求发现配置已更新 我们可以新建命名空间来实现配置隔离

    1.5K10

    如何发布npm包(vue组件)

    1.创建项目打开cmd在项目中输入一下命令初始化一个vue的项目,名称自定义vue create app在src的同级目录下新建一个名称为myComponents的组件库,如图所示图片2.配置自己的项目...可以按照我的配置配置如下# 忽略目录srcmyComponentsnode_modulespublicutils# 忽略指定文件vue.config.jsbabel.config.js*.mapjsconfig.json6...此处注意注册完需要2FA六位动态码绑定,动态码每隔半分钟更新一次,此动态码用于发布,可以在个人Account里面去根据流程操作进行绑定。...图片登录注册成功后,在输入npm login,一下要依次输入你的用户名,密码,邮箱和六位动态码npm login图片如果提示上图信息,便表示登录成功,接下来使用如下命令发布如果没发布成功,可以尝试把原来使用淘宝镜像源的更换成官方源...,因为淘宝是只读源npm config set registry https://registry.npmjs.orgnpm publish如果提示输入--ocp的话,就再一次输入自己的六位动态码即可。

    4K105

    Nacos动态刷新配置

    设定当前服务已经运行于nacos框架的基础上,配置动态刷新。...=application-prod.yml 如果想要将配置传至nacos中,并动态刷新生效,首先加上maven依赖 com.alibaba.cloud...这时候再以默认方式启动服务,服务就会从云端nacos中读取配置 在服务运行中对该配置文件进行修改后进行发布,服务会动态切换配置文件,至此,就满足了需求中类似动态修改loggin:level:root:...warn 与info的需求,如需动态切换别的配置文件,如短信服务地址签名accessKeyId之类的,需要在引入类的位置再加上一个注解@RefreshScope。...后即可动态生效配置。 详细配置文件源码读取原理后期会发布,此处仅记录并展示使用方法。 Post Views: 727

    2K30

    【Linux】配置动态IP

    动态IP 服务器重启完成之后,我们可以通过linux的指令 ip addr 来查询Linux系统的IP地址,具体信息如 下: 从图中我们可以看到,并没有获取到linux系统的IP地址,这是为什么呢?...那么接下来我们就需要来修改网络初始化配置,设定 网卡在系统启动时初始化。   具体操作步骤如下: 1)....修改网卡的配置项 cd /                进入根目录 cd etc                进入etc目录 cd sysconfig        进入sysconfig目录...按 ENTER    保存退出 备注: 在上述的操作中用到了Linux中的相关指令, 目前大家不用深究, 后面会详细讲解, 目前大家只 需要把这个文件的配置项ONBOOT的值有no改为yes即可。

    8.5K20

    SpringBoot动态配置加载

    1、SpringBoot对配置文件集中化进行管理,方便进行管理,也可以使用HttpClient进行对远程的配置文件进行获取。...创建一个类实现EnvironmentPostProcessor 接口,然后可以对配置文件获取或者添加等等操作。...; 12 13 /** 14 * 15 * @Description TODO 16 * @author biehl 17 * @Date 2018年12月30日 下午3:43:55 1、动态获取到配置文件信息...然后配置文件的内容如下所示: 1 springboot.name=SpringBoot 需要注意的是,需要创建一个META-INF的文件夹,然后spring.factories文件里面的内容如下所示:...org.springframework.boot.env.EnvironmentPostProcessor=com.bie.springboot.DynamicEnvironmentPostProcessor 3、然后可以使用主类获取到动态配置文件里面的配置信息

    4.9K30

    Docker容器——安装Redis,并实现可更改配置

    Docker容器——安装Redis,并实现可更改配置 背景 日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家...至此我们就可以正常连接宿主机IP:6379进行使用redis了,而有时我们需要进行配置redis的配置文件,使其具备一些特性,比如连接需要密码,这时我们就需要将其配置文件设置在宿主机中或者固定存储中,下面我们就开始将配置文件更改读取为宿主机...,便于更改维护使用。...mkdir /docker-local/redis mkdir /docker-local/redis/data 5、从redis官方下载我们需要的配置文件,并作为我们redis的配置文件 cnhuashao...至此我们就完成了redis的配置,可以在宿主机中的/docker-local/redis/redis.conf中进行更改相关的配置来满足我们的需求了。 更多信息可参考官方文档

    1.2K10

    git,程序配置文件管理,忽略本地更改

    写在前面 在我们开发过程中,经常会出现数据库配置文件、redis环境配置文件等。 在不同的开发环境(同事与同事之间 开发与测试与生产环境)大概率是不同的。...如果每个人都按普通的流程,Pull然后修改成自己本地的,没有忽略监听更改。 那么当他提交代码时,经常会把配置文件也上传到git仓库中。 会影响其他人的开发。...所以我们应该这样子做:git仓库提供一份配置文件的基础模板,每个人都拉取到本地修改但是要忽略本地更改监听。...操作步骤 1.建立git仓库 2.创建基本配置文件模板 3.提交并推送到仓库 4.本地忽略监听 5.服务器部署,拉取仓库 6.忽略监听 7.更改配置文件 协助资料 忽略某个文件或者目录 git update-index

    1.1K30
    领券