网页水印SDK的实现方法介绍(代码示例)

本篇文章给大家带来的内容是关于网页水印sdk的实现方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

在网站浏览中,常常需要网页水印,以便防止用户截图或录屏暴露敏感信息后,追踪用户来源。如我们常用的钉钉软件,聊天背景就会有你的名字。那么如何实现网页水印效果呢?

网页水印SDK,实现思路

1.能更具获取到的当前用户信息,如名字,昵称,ID等,生成水印
2.生成一个Canvas,覆盖整个窗口,并且不影响其他元素
3.可以修改字体间距,大小,颜色
4.不依赖Jquery
5.需要防止用户手动删除这个Canvas

实现分析

初始参数

    size: 字体大小    color: 字体颜色    id: canvasId    text: 文本内容    density: 间距    clarity: 清晰度    supportTip: Canvas不支持的文字提示

登录后复制

生成Canvas

根据id生成Canvas,画布大小为window.screen大小,若存在原有老的Canvas,清除并重新生成。

画布固定定位在可视窗口,z-index为-1

    let body = document.getElementsByTagName('body');    let canvas = document.createElement('canvas');    canvas.style.cssText= 'position: fixed;width: 100%;height: 100%;left:0;top:0;z-index: -1;';    body[0].appendChild(canvas);

登录后复制

指纹生成算法

      let canvas = document.getElementById(this.params.id);      let cxt = canvas.getContext('2d');      let times = window.screen.width * this.params.clarity / this.params.density;//横向文字填充次数      let heightTimes = window.screen.height * this.params.clarity * 1.5/ this.params.density; //纵向文字填充次数      cxt.rotate(-15*Math.PI/180); //倾斜画布         for(let i = 0; i < times; i++) {        for(let j = 0; j < heightTimes; j++) {          cxt.fillStyle = this.params.color;          cxt.font = this.params.size + ' Arial';          cxt.fillText(this.params.text, this.params.density*i, j*this.params.density);        }      }

登录后复制

防止用户删除

使用定时器,定时检查指纹是否存在

    let self = this;    window.setInterval(function(){    if (!document.getElementById(self.params.id)) {    self._init();    }    }, 1000);

登录后复制

项目编译

使用glup编译

    var gulp = require('gulp'),        uglify = require("gulp-uglify"),        babel = require("gulp-babel");    gulp.task('minify', function () {        return gulp.src('./src/index.js') // 要压缩的js文件        .pipe(babel())        .pipe(uglify())        .pipe(gulp.dest('./dist')); //压缩后的路径    });

登录后复制

以上就是网页水印SDK的实现方法介绍(代码示例)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2733141.html

(0)
上一篇 2025年3月8日 00:52:42
下一篇 2025年2月23日 15:08:04

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JavaScript拖拽上传功能的实现及原理介绍

    本篇文章给大家带来的内容是关于javascript拖拽上传功能的实现及原理介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 最近,小明遇到这样一种情况:在网页中上传文件时偶尔页面会崩溃。小明仔细测试了这种情况,发现之前用…

    2025年3月8日
    200
  • 基于iview-ui的导航栏路径配置(代码示例)

    本篇文章给大家带来的内容是关于基于iview-ui的导航栏路径配置(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 上家公司的后台管理系统都是刷表刷出来的,所用很久很久没写后台管理系统了。换了工作后总算要开始捣腾…

    编程技术 2025年3月8日
    200
  • Vue中虚拟dom比较原理的介绍(示例讲解)

    本篇文章给大家带来的内容是关于Vue中虚拟dom比较原理的介绍(示例讲解),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 先说一下为什么会有虚拟dom比较这一阶段,我们知道了vue是数据驱动视图(数据的变化将引起视图的变化…

    2025年3月8日 编程技术
    200
  • JS函数节流的用法介绍(代码示例)

    本篇文章给大家带来的内容是关于js函数节流的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 现在javascript的用途 真的很广,感觉什么事都可以做,比如做视频监控,时刻看看你喜欢的人再做什么,哎呀…

    2025年3月8日
    200
  • JavaScript通信之Ajax的详细介绍(代码示例)

    本篇文章给大家带来的内容是关于JavaScript通信之Ajax的详细介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 表单提交 在html中提供了表单提交的功能,我们可以通过表单把数据从前台提交到后台,通过…

    2025年3月8日 编程技术
    200
  • iView实现可编辑表格的方法介绍(附代码)

    本篇文章给大家带来的内容是关于iView实现可编辑表格的方法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 组件 登录后复制 实现方式: 记录当前需要编辑的列的id,默认为空 需要编辑的列与当前需要编辑的id…

    编程技术 2025年3月8日
    200
  • Vue结构的详细介绍(附示例)

    本篇文章给大家带来的内容是关于vue结构的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 1.Vue的使用场景 : * 在html中通过script引入* 在webpack中,由于配置有处理各种文件的lo…

    编程技术 2025年3月8日
    200
  • join()方法怎么用

    javascript中的join()方法用于把数组中的所有元素放入一个字符串,本通过指定分隔符进行分隔。 JavaScript  join()方法 作用:join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的…

    2025年3月8日
    200
  • React组件模式的详细介绍(附示例)

    本篇文章给大家带来的内容是关于react组件模式的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 组件是 React 的核心,因此了解如何利用它们对于创建优秀的设计结构至关重要。 什么是组件 根据 Rea…

    2025年3月8日 编程技术
    200
  • 如何使用JavaScript加载CSS文件?(代码示例)

    css文件用于描述html元素的显示方式,有各种方法可以在html文档中添加css文件。javascript就可在html文档中加载css文件,那么如何使用javascript加载css文件?下面本篇文章就来给大家介绍一下,希望对大家有所帮…

    2025年3月8日
    200

发表回复

登录后才能评论