Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
i-screen-shot
Advanced tools
web端自定义截屏插件(Vue3版),运行视频:实现web端自定义截屏功能 , 本插件仅支持Vue3,如需在其他平台使用请移步 :js-web-screen-shot 效果图如下:
关于此插件的更多介绍以及实现原理请移步:
yarn add vue-web-screen-shot
# or
npm install vue-web-screen-shot --save
由于插件使用Vue3编写,因此它只能在Vue3项目中运行,如果你需要在vue2项目或者其他js项目中运行请移步:js-web-screen-shot,它采用原生js编写,功能与本插件功能一致。
注意⚠️: 如果需要使用插件的webrtc模式或者截图写入剪切板功能,需要你的网站运行在
https
环境或者localhost
环境。
main.ts/main.js
中加入下述代码// 导入截屏插件
import screenShort from "vue-web-screen-shot";
const app = createApp(App);
// 使用截屏插件
app.use(screenShort, { enableWebRtc: false })
<template>
<!--截图组件-->
<screen-short v-if="screenshotStatus"
@destroy-component="destroyComponent"
@get-image-data="getImg"
></screen-short>
</template>
<script lang="ts">
export default defineComponent({
setup(props, context) {
const screenshotStatus = ref<boolean>(false);
// 销毁组件函数
const destroyComponent = function(status: boolean) {
screenshotStatus.value = status;
}
// 获取裁剪区域图片信息
const getImg = function(base64: string) {
console.log("截图组件传递的图片信息", base64);
}
return {
screenshotStatus,
destroyComponent,
getImg
}
}
})
</script>
如示例代码所示,在template中直接使用screen-short
插件,绑定组件需要的事件处理函数即可。
接下来就跟大家讲下组件中每个属性的意义:
截图插件有一个可选参数,它接受一个对象,对象每个key的作用如下:
enableWebRtc
是否启用webrtc,值为boolean类型,值为false则使用html2canvas来截图level
截图容器层级,值为number类型。clickCutFullScreen
单击截全屏启用状态,值为boolean
类型, 默认为false
hiddenToolIco
需要隐藏的截图工具栏图标,值为{ save?: boolean; undo?: boolean; confirm?: boolean }
类型,默认为{}
。传你需要隐藏的图标名称,将值设为true
即可。enableCORS
html2canvas截图模式下跨域的启用状态,值为boolean
类型,默认为false
proxyAddress
html2canvas截图模式下的图片服务器代理地址,值为string
类型,默认为undefined
writeBase64
是否将截图内容写入剪切板,值为boolean
类型,默认为true
wrcWindowMode
是否启用窗口截图模式,值为boolean
类型,默认为false
,即当前标签页截图。如果标签页截图的内容有滚动条或者底部有空缺,可以考虑启用此模式。hiddenScrollBar
是否隐藏滚动条,用webrtc模式截图时chrome 112版本的浏览器在部分系统下会挤压出现滚动条,如果出现你可以尝试通过此参数来进行修复。值为Object
类型,有4个属性:
state: boolean
; 启用状态, 默认为false
fillState?: boolean
; 填充状态,默认为false
color?: string
; 填充层颜色,滚动条隐藏后可能会出现空缺,需要进行填充,默认填充色为黑色。fillWidth?: number
; 填充层宽度,默认为截图容器的宽度fillHeight?: number
; 填充层高度,默认为空缺区域的高度使用当前标签页进行截图相对而言用户体验是最好的,但是因为
chrome 112
版本的bug会造成页面内容挤压导致截取到的内容不完整,因此只能采用其他方案来解决此问题了。wrcWindowMode
和hiddenScrollBar
都可以解决这个问题。
wrcWindowMode
方案会更完美些,但是用户授权时会出现其他的应用程序选项,用户体验会差一些hiddenScrollBar
方案还是采用标签页截图,但是会造成内容挤压,底部出现空白。两种方案的优点与缺点都讲完了,最好的办法还是希望
chrome
能在之后的版本更新中修复此问题。
至此,插件的所有使用方法就介绍完了。
FAQs
web端自定义截屏插件(Vue3版)
The npm package i-screen-shot receives a total of 84 weekly downloads. As such, i-screen-shot popularity was classified as not popular.
We found that i-screen-shot demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.