vue.js在输入时从contenteditable元素获取innerhtml

aelbi1ox  于 2023-02-05  发布在  Vue.js
关注(0)|答案(4)|浏览(233)

我尝试通过contenteditable=true绑定一个vue.js事件来检测元素的变化。

<div id="test" contenteditable="true" v-on-input="trigger" v-model="test"></div>

这触发了我的vue. jsvue中的trigger方法,但我似乎无法获取模型值。
有人知道如何在input事件之后获取innerHTML/innerText吗?

hrirmatl

hrirmatl1#

OK简短描述:
模板:

<div contenteditable="true"
     v-html="myHtmlCode"
     @input="onDivInput($event)">
</div>

脚本:

methods: {
    onDivInput: function(e) {
        this.myHtmlCode = e.target.innerHTML;
        console.log('Text: %o', this.myHtmlCode );
    },
},
bvjveswy

bvjveswy2#

在我的vue.js组件中使用event.target.innerText解决了这个问题

tcomlyy6

tcomlyy63#

export default {
  data() {
    return {
      content: null
    }
  },
  methods: {
    onFocusOut: function(e) {
      this.content = e.target.innerHTML
    }
  }
}
<div contenteditable="true" v-html="content" @focusout="onFocusOut($event)"></div>
unguejic

unguejic4#

一行仅使用@blur而不是@input
<div contenteditable="true" @blur="test = $event.target.innerText">{{test}}</div>

相关问题