1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > js复制功能 可粘贴到文档 粘贴栏(复制内容有格式)

js复制功能 可粘贴到文档 粘贴栏(复制内容有格式)

时间:2020-07-13 21:40:10

相关推荐

js复制功能 可粘贴到文档 粘贴栏(复制内容有格式)

在网上看了很多的帖子,发现用input是不可以的(多数帖子都是用的input),要用textarea。

我主要是用来复制后端传来的日志文档

情景:返回的list列表中,需要有复制功能,可以复制当前内容,并且 当前内容有需要换行的需求。 代码如下:(vue项目)

HTML:

<ul>

<li v-for='(item,key) in content' :key='key' @click="copyContent(item)" style='white-space: pre-wrap;'>

{{item}}

</li>

</ul>

JS:

data() {

return{

item:[{

content:'内容1\r\n内容被换行'

},{

content:'内容2'

},{

content:'内容3\r\n \r\n内容被换行'

},{

content:'内容4'

}]

}

},

methods:{

//复制按钮

copyContent(text){

this.copyText(text,(words) => {

//复制成功后,弹出复制成功element-ui弹窗,提示:内容复制成功!

this.SUCC_MSGBOX('内容' + words + '!')

})

},

// 复制方法

copyText(text, callback) {

// text: 要复制的内容, callback: 回调 - 复制成功后的操作

//以下创建标签,根据需求来选取

var tag = document.createElement('textarea') //textarea:标签会识别换行符,且后台返回换行符时不能转义 \r\n(Chrome浏览器返回↵ 字符,不是\r\n),如果换行符被转义,则会直接显示出来,无换行的功能了

// var tag = document.createElement('input') //input 复制出来的内容无法换行,即使有换行符 ↵ 或 \r\n

tag.setAttribute('id', 'cp_hgz_input')

tag.value = text

document.getElementsByTagName('body')[0].appendChild(tag)

document.getElementById('cp_hgz_input').select()

document.execCommand('copy')

document.getElementById('cp_hgz_input').remove()

if (callback) {

callback('复制成功')

}

},

}

页面如果不能换行显示,添加css样式:white-space: pre-wrap;

原文链接:/Shimeng_1989/article/details/105677595

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。