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

 

代码实现:

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.replace(/()/g, "").replace(
		/)<[^<]*)*<\/script>/gi,
		"").replace(/()/g, '').replace(/()/g, '').replace(
		/()/g, '').replace(/&([\s\S]*?);/g, '')
	// 提取><中间文字 多空格为一个  ><
	let result = res.replace(/(?=\<[\s\S]*?)([\s\S]*?)(?=\>)/g, "").replace(/\>/g, " ").replace(/\s+/g, " ")
	return result
}

你可能感兴趣的:(uniapp,uni-app,前端,javascript)