我想使用TinyMCE的默认保存机制来手动触发一个事件,以将文档的内容保存到服务器。
TinyMCE vuejs集成,具有一个onSaveContent
事件,该事件会触发但不接受event.preventDefault()
并取消页面重新加载。因为在vuejs中重新加载页面是没有用的。
https://www.tiny.cloud/docs/integrations/vue/
保存插件,说明我需要一个表单和按钮元素。 https://www.tiny.cloud/docs/plugins/save/
有人也遇到过这个问题吗? 我还尝试通过ID获取表单,并尝试取消表单提交,还设置了发布方法,将不会更改任何内容。
那么创建自己的保存功能会更好吗?
HTML标记
<form id="document-form">
<tinymce-editor
api-key="xxx-xxx-xxx-xxx"
v-model="document.contents"
:init="{
plugins: ['wordcount','autoresize','code','fullscreen','image','link','save','table','toc'],toolbar: 'save | undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent'
}"
@onSaveContent="saveDocument"
></tinymce-editor>
<button class="submitbtn" name="submitbtn"></button>
</form>
Vuejs回调方法:
methods: {
saveDocument: function (event,editor) {
event.preventDefault()
console.log(event)
console.log(editor)
console.log('save now my child!')
},}
编辑1:
我还尝试了以下方法:
enter link description here基本上向事件监听器添加.prevent就像这样:@onSaveContent.prevent="saveDocument"
也将不起作用。
而且也不是:
<form
id="document-form"
@submit.prevent="saveDocument"
>
修改2: 我放弃了默认行为,现在使用一个确实适用于回调的自定义按钮来复制保存功能,并捕获ctrl +S。 确实有效。