uniapp/H5富文本复制文本功能

uni-app前端代码工具方法实现
博客主要涉及uni-app前端开发的代码实现,着重介绍了工具方法相关内容,与信息技术领域的前端开发紧密相关。

 

代码实现:

copy() {
				let replacedContent = this.form.resTaskBaseInfoDetail.content;
				let text = readHtml(replacedContent)
				// #ifdef H5
				let textarea = document.createElement("textarea")
				textarea.value = text
				textarea.readOnly = "readOnly"
				document.body.appendChild(textarea)
				textarea.select() // 选中文本内容
				textarea.setSelectionRange(0, text.length)
				uni.showToast({ //提示
					title: '复制成功',
					icon: 'success'
				})
				document.execCommand("copy")
				textarea.remove()
				// #endif
				// #ifndef H5
				uni.setClipboardData({
					data: text, //要被复制的内容
					success: () => { //复制成功的回调函数
						uni.showToast({ //提示
							title: `复制成功`,
							icon: 'success'
						})
					}
				}, true);
				// #endif
			},

工具方法:

// 提取html中文本
export const readHtml = (html) => {
	// 去掉注释,script,style,textarea,input,实体字符&开头;结尾
	let res = html.repl
UniApp 框架中实现 H5 技术的富文本编辑器功能,通常可以通过以下几种方式完成: ### 3.1 使用 `contenteditable` 自定义富文本编辑器 UniApp 支持 H5 页面中使用原生 HTML 属性 `contenteditable` 来创建可编辑区域。开发者可以结合 Vue 的 ref 和 methods 实现对编辑内容的控制与导出。 ```html <template> <view class="container"> <div id="editor" contenteditable="true" @input="onInput" v-html="editorContent"></div> <button @click="saveContent">保存</button> </view> </template> <script> export default { data() { return { editorContent: '<b>初始内容</b>' }; }, methods: { onInput(e) { this.editorContent = e.target.innerHTML; }, saveContent() { console.log('当前HTML内容:', this.editorContent); } } }; </script> ``` 该方法适用于简单的富文本输入场景,但缺乏高级格式化功能如插入图片、颜色选择等[^1]。 --- ### 3.2 使用第三方富文本编辑器组件 为了提升功能完整性和用户体验,推荐集成成熟的富文本编辑器库或组件。例如: #### 3.2.1 使用 `vue-quill-editor` Quill 是一个功能丰富的开源富文本编辑器,支持 Vue 集成,并兼容 UniAppH5 平台。 安装依赖: ```bash npm install vue-quill-editor quill ``` 使用示例: ```html <template> <quill-editor v-model="content" :options="editorOptions" /> </template> <script> import { quillEditor } from 'vue-quill-editor'; import 'quill/dist/quill.core.css'; import 'quill/dist/quill.snow.css'; export default { components: { quillEditor }, data() { return { content: '<p>默认内容</p>', editorOptions: { theme: 'snow' } }; } }; </script> ``` 此方案提供了完整的编辑功能,包括字体设置、列表、链接插入等。 --- ### 3.3 使用 UniApp 内置的 `web-view` 加载外部编辑器 若需要更复杂的富文本编辑功能(如公式编辑、协作编辑等),可通过 `web-view` 组件加载远程网页形式的富文本编辑器,例如 TinyMCE 或 CKEditor。 ```html <template> <web-view :src="editorUrl" @message="handleMessage" /> </template> <script> export default { data() { return { editorUrl: 'https://example.com/rich-text-editor.html' }; }, methods: { handleMessage(e) { const htmlContent = e.detail.data[0]; console.log('接收到的内容:', htmlContent); } } }; </script> ``` 通过 `web-view` 可以实现跨平台一致的富文本体验,但需要注意网络请求和安全性问题。 --- ### 3.4 结合引用中的 `this.$refs.editor.setEditorContent()` 方法 根据提供的代码片段,可以通过封装一个自定义编辑器组件,并通过 `ref` 调用其方法来设置初始内容和导出 HTML。 ```html <template> <custom-rich-editor ref="editor" @export="handleExportHtml" /> </template> <script> export default { mounted() { const fixedHtmlContent = ` <p><strong>欢迎使用富文本编辑器!</strong></p> <ul> <li>列表项 1</li> <li>列表项 2</li> </ul> <p style="color: red;">这是一个红色的文本。</p> `; this.$refs.editor.setEditorContent(fixedHtmlContent); }, methods: { handleExportHtml(htmlContent) { console.log('导出的HTML内容:', htmlContent); } } }; </script> ``` 此方法允许开发者灵活控制编辑器行为,并与其他业务逻辑集成。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值