vue引入富文本框tinmce

父组件

<template>

  <div class="home">

    <tinmce v-model="value"></tinmce>

    <div v-html="value"></div>

  </div>

</template>

<script>

// @ is an alias to /src

import tinmce from './tinmce.vue';


 

export default {

  name: 'HomeView',

  data(){

    return {

      value:'New Content'

    }

  },

  components: {

    tinmce,

  },

  mounted(){

  }

}

</script>

子组件

<template>

    <section id="tinymce-editor"></section>

</template>

<script>

    import '../../public/tinymce/tinymce.min.js'

    import '../../public/tinymce/themes/silver/theme.min.js'

    // 引入字体

    import '../../public/tinymce/langs/zh-Hans'

    // 引入插件

    import '../../public/tinymce/plugins/preview/plugin.min.js'

    import '../../public/tinymce/plugins/image/plugin'

    import '../../public/tinymce/plugins/imagetools/plugin'

    export default {

        props:{

            value:{

                type:String,

                default:''

            }

        },

        mounted(){

            tinymce.init({

                selector:'#tinymce-editor',

                language:'zh-Hans',

                // 菜单栏

                menubar:'bar1 bar2',

                menu:{

                    bar1:{title:'菜单',items:'copy paste cut preview image'}

                },

                //工具栏  

                // toolbar:'undo redo preview',

                plugins:'preview image imagetools',

                //监听tinymce初始化完成事件

                setup:(editor)=>{

                    editor.on('init',(e)=>{

                        editor.setContent(this.value)

                    })

                },

                // 监听input和change事件,实时更新value

                init_instance_callback:(editor)=>{

                    editor.on('input',(e)=>{

                        this.$emit('input',e.target.innerHTML)

                    })

                    editor.on('change',(e)=>{

                        this.$emit('input',e.level.content)

                    })

                }

            })

        }

    }

</script>

<style lang="scss" scoped>

@import url('../../public/tinymce/skins/ui/oxide/skin.min.css');

</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值