vue复制用navigator.clipboard替换execCommand

由于document.execCommand即将被弃用,可以使用navigator.clipboard进行替换;

但是navigator.clipboard需要满足条件:必须是https安全链接下才能拿到clipboard对象; 

可在vue.config.js下模拟为https连接:

module.exports = defineConfig({
  // publicPath : process.env.BASE_URL,
  transpileDependencies: true,
  devServer: {
    // open: true,
    // host: 'localhost',
    // port: 8080,
    https: true,
  }
}

同时加上window.isSecureContext判断为true时候为安全状态;

copy(item) { //item为要复制的字符串
            if(!navigator.clipboard) {
                this.$toast('请更换https连接')
                return
            }
            if (navigator.clipboard && window.isSecureContext) {
                navigator.clipboard.writeText(item).then(() => {
                    this.$toast('复制成功')
                }).catch(err => {
                    this.$toast('复制失败!')
                })
            }
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue中使用`navigator.mediaDevices.getUserMedia`来拍照并保存到电脑本地,可以按照以下步骤进行操作: 1. 首先,在Vue项目中创建一个组件,例如`CameraCapture.vue`。 2. 在该组件的模板中,添加一个视频元素和一个按钮元素,用于触发拍照操作。示例代码如下: ```html <template> <div> <video ref="videoElement" autoplay></video> <button @click="capturePhoto">拍照</button> </div> </template> ``` 3. 在该组件的`mounted`生命周期钩子函数中,获取视频流并将其显示在视频元素中。示例代码如下: ```javascript <script> export default { mounted() { navigator.mediaDevices.getUserMedia({ video: true }) .then(stream => { this.$refs.videoElement.srcObject = stream; }) .catch(error => { console.log('获取视频流失败:', error); }); }, methods: { capturePhoto() { // 在这里编写拍照并保存到电脑本地的逻辑 } } } </script> ``` 4. 在`capturePhoto`方法中,可以使用`canvas`元素来进行拍照和保存操作。示例代码如下: ```javascript capturePhoto() { const videoElement = this.$refs.videoElement; const canvas = document.createElement('canvas'); canvas.width = videoElement.videoWidth; canvas.height = videoElement.videoHeight; const context = canvas.getContext('2d'); context.drawImage(videoElement, 0, 0, canvas.width, canvas.height); // 将拍摄的照片保存为文件 const photoDataUrl = canvas.toDataURL('image/png'); const link = document.createElement('a'); link.href = photoDataUrl; link.download = 'photo.png'; link.click(); } ``` 以上代码中,我们使用`canvas`元素将视频帧绘制到画布上,然后将画布内容保存为图片文件,并通过创建一个`<a>`元素来模拟点击下载操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值