小工具知识网

当前位置: 首页 > 行业知识 > 在vue项目里使用js-web-screen-shot 实现截图的功能

行业知识

在vue项目里使用js-web-screen-shot 实现截图的功能

2026-11-12 17:41:09 来源:互联网转载

怎么在前端项目里添加一个截图功能呢,今天我们使用js-web-screen-shot  来实现一下,超详细的代码,教你轻轻松松做截图。以下是基于vue3+ts

                 

请确认是否保存截图!

取 消 确 定 取 消 确 定
import { defineComponent, ref, unref } from 'vue';import  { uploadOssApi } from '../api'import { Message } from '_c/Message'import ScreenShort from 'js-web-screen-shot'export default  defineComponent({  emits:['imageData'],  setup(props, {emit}) {    const nameRef = ref()    const confirmDialog = ref(false)    const nameDialog = ref(false)    const imgUrl = ref()    const nameData = ref({name:''})    //截图事件    function jitT () {      const screenShotHandler = new ScreenShort({        enableWebRtc: false, // 是否显示选项框        level: 99, // 层级级别        completeCallback: callback, //确认回调        closeCallback: closeFn  //取消回调      } as any)    }    //确认回调    const callback = (val:any) => {      confirmDialog.value = true      imgUrl.value = base64ToBlob(val.base64)      }    //取消回调     const closeFn = (base64:any) => {       console.log(base64)     }    //转为base64好上传oss    function base64ToBlob(code:any) {      let parts = code.split(";base64,");      let contentType = parts[0].split(":")[1];      let raw = window.atob(parts[1]);      let rawLength = raw.length;      let uInt8Array = new Uint8Array(rawLength);      for (let i = 0; i  {          if (valid) {            const form = new FormData()            console.log('form',form);            form.append('file', imgUrl.value, `${nameData.value.name}.png`)            form.append('businessType', 'questionScreen')            const res:any = await uploadOssApi({              data: form            })            if(res?.code === '200') {              const data = {fileId: res.data, fileName: `${nameData.value.name}.png`}              emit('imageData',data)              nameDialog.value = false              nameData.value.name = ''            } else {              Message.error(res.msg)            }          } else {            console.log('error submit!!')            return false          }         })        }      function confirmUpdataName() {        confirmDialog.value = false        nameDialog.value = true      }      return {        jitT,        confirmDialog,        nameDialog,        confirmUpdataName,        confirmSave,        nameRef,        nameData      }  }})

上一篇:苹果4s应用下载教程

下一篇:【MySQL】表的增删改查——MySQL基本查询、数据库表的创建、表的读取、表的更新、表的删除