vue-ckeditor

<script src="https://cdn.ckeditor.com/4.11.1/full-all/ckeditor.js"></script>

editor.vue 

<template>
    <textarea :style="{width: width || '100%', height: height || '300px'}" v-model="value"></textarea>
</template>

<script>
    export default {
        props: ['width', 'height', 'value'],
        data() {
            return {
                flag: true,
            }
        },
        mounted() {
            var editor = CKEDITOR.replace(this.$el, {
                contentsCss: [
                    'http://cdn.ckeditor.com/4.11.1/full-all/contents.css',
                ],
                uploadUrl: this.$config.uploadUrl,
                filebrowserUploadUrl: this.$config.uploadUrl,
                filebrowserImageUploadUrl: this.$config.uploadUrl,
            });

            editor.on('fileUploadRequest', (evt) => {
                var query = this.$uploadData(),
                    fileLoader = evt.data.fileLoader,
                    xhr = fileLoader.xhr,
                    formData = new FormData();

                formData.append('file', fileLoader.file, fileLoader.fileName);
                for (var name in query) {
                    formData.set(name, query[name]);
                }
                xhr.send(formData);

                evt.stop();
            });

            editor.on('fileUploadResponse', (evt) => {
                evt.stop();

                try {
                    var res = JSON.parse(evt.data.fileLoader.xhr.responseText);
                    evt.data.url = res.data.url || '';
                } catch (e) {
                    evt.data.message = e;
                    evt.cancel();
                }
            });

            editor.on('change', (evt) => {
                var content = evt.editor.getData();
                this.$emit('input', content)
            });
        }
    }
</script>

test.vue

<template>
    <div>
        <editor value="123" @input="onContent"></editor>
    </div>
</template>

<script>
    import editor from '@/components/editor'
    export default {
        components: {
            editor,
        },
        data() {
            return {
               
            }
        },
        methods: {
            onContent(content) {
                console.log(content)
            }
        },
    }
</script>

 

转载于:https://my.oschina.net/qiongtaoli/blog/2995311

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值