uniapp H5页面使用setClipboardData复制,导致滚动条回到顶部

696 阅读1分钟

前两天遇见的bug,记录一下

现象:

  • H5页面使用setClipboardData复制时,会导致页面刷新,滚动条回到顶部

原代码:

uni.setClipboardData({
  data,
  success: () => {
    console.log('复制成功')
  },
  fail: () => {
    console.log('复制失败')
  }
});

修改代码:

H5页面进行兼容处理,使用复制的npm包

  • 由于uniapp使用的是vue2编写,因此使用vue-clipboard2,vue3可以使用vue-clipboard3

下载包:

npm install --save vue-clipboard2

main.js

import Vue from 'vue'
// #ifdef H5
import VueClipboard from 'vue-clipboard2'
Vue.use(VueClipboard)
// #endif

使用:

// #ifdef APP-PLUS
uni.setClipboardData({
  data,
  success: () => {
    console.log('复制成功')
  },
  fail: () => {
    console.log('复制失败')
  }
});
// #endif
// #ifdef H5
this.$copyText(data).then(()=>{
	console.log('复制成功')
},()=>{
  console.log('复制失败')
})
// #endif