富文本wangeditor 上传图片如何更改默认宽度
时间: 2024-03-12 11:43:07 浏览: 395
上传图片自定义宽高
在 wangeditor 中上传图片时,可以通过配置 editor.customConfig.uploadImgShowBase64 属性来预览图片,并设置图片的默认宽度。
1. 首先需要在组件中创建一个 ref 对象,用于获取 wangEditor 实例:
```javascript
import React, { Component } from 'react';
import wangEditor from 'wangeditor';
class Editor extends Component {
constructor(props) {
super(props);
this.editorRef = React.createRef();
}
componentDidMount() {
const editor = new wangEditor(this.editorRef.current);
editor.customConfig.onchange = (html) => {
this.props.onChange(html);
};
editor.customConfig.uploadImgShowBase64 = true;
editor.customConfig.uploadImgParams = {...};
editor.customConfig.uploadImgServer = '...';
editor.customConfig.uploadImgHooks = {...};
editor.create();
this.editor = editor;
}
render() {
return (
<div ref={this.editorRef} />
);
}
}
```
2. 在 uploadImgHooks 中的 success 回调函数中,可以获取到上传图片成功后返回的图片地址和图片宽度,并将图片宽度设置为默认宽度:
```javascript
const editor = this.editor;
editor.customConfig.uploadImgHooks = {
success: function (xhr, editor, result) {
if (result && result.data && result.data.length > 0) {
const imgWidth = result.data[0].width || '';
editor.cmd.do('insertHtml', `<img src="${result.data[0].url}" style="max-width:100%;width:${imgWidth}" />`);
} else {
window.alert('上传失败');
}
},
...
};
```
在上面的代码中,imgWidth 代表图片的宽度,可以通过上传图片成功后返回的 result 对象中的 width 属性获取到。将图片的宽度设置为 style 属性的 width 值,并设置 max-width 属性为 100%,可以使图片自适应编辑器的宽度。
需要注意的是,如果上传的图片本身就有宽度属性,那么可以直接使用图片本身的宽度,不需要再设置默认宽度。如果图片没有宽度属性,那么可以设置一个固定的默认宽度,例如:
```javascript
editor.cmd.do('insertHtml', `<img src="${result.data[0].url}" style="max-width:100%;width:600px" />`);
```
在这个例子中,将图片的默认宽度设置为 600px。
阅读全文