下载鸥 > 网站下载 > 开发教程 > JS/JQuery

网站数据安全:JS开发跑马灯防盗防录屏功能

367 2021-05-25 02:00:01

收藏
对于视频站点而言,如何防止视频被盗用是一个不得不考虑的问题。而视频防盗我们除了考虑视频切片、视频地址加密外,还可以考虑引入跑马灯防盗。本文分享一个跑马灯防盗的html+js源码。

网站数据安全:JS开发跑马灯防盗防录屏功能

跑马灯防盗源码

<!DOCTYPE html>
<html>
<head>
<title>JS浮动广告</title> 
</head>
<body>
<style>
img{border:0;}
a{
    text-decoration: none;
}
</style> 
<script>
function addEvent(obj, evtType, func, cap) {
    cap = cap || false;
    if (obj.addEventListener) {
        obj.addEventListener(evtType, func, cap);
        return true;
    } else if (obj.attachEvent) {
        if (cap) {
            obj.setCapture();
            return true;
        } else {
            return obj.attachEvent("on" + evtType, func);
        }
    } else {
        return false;
    }
}

function getPageScroll() {
    var xScroll, yScroll;
    if (self.pageXOffset) {
        xScroll = self.pageXOffset;
    } else if (document.documentElement && document.documentElement.scrollLeft) {
        xScroll = document.documentElement.scrollLeft;
    } else if (document.body) {
        xScroll = document.body.scrollLeft;
    }
    if (self.pageYOffset) {
        yScroll = self.pageYOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {
        yScroll = document.documentElement.scrollTop;
    } else if (document.body) {
        yScroll = document.body.scrollTop;
    }
    arrayPageScroll = new Array(xScroll, yScroll);
    return arrayPageScroll;
}

function GetPageSize() {
    var xScroll, yScroll;
    if (window.innerHeight && window.scrollMaxY) {
        xScroll = document.body.scrollWidth;
        yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight) {
        xScroll = document.body.scrollWidth;
        yScroll = document.body.scrollHeight;
    } else {
        xScroll = document.body.offsetWidth;
        yScroll = document.body.offsetHeight;
    }
    var windowWidth, windowHeight;
    if (self.innerHeight) {
        windowWidth = self.innerWidth;
        windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) {
        windowWidth = document.documentElement.clientWidth;
        windowHeight = document.documentElement.clientHeight;
    } else if (document.body) {
        windowWidth = document.body.clientWidth;
        windowHeight = document.body.clientHeight;
    }
    if (yScroll < windowHeight) {
        pageHeight = windowHeight;
    } else {
        pageHeight = yScroll;
    }
    if (xScroll < windowWidth) {
        pageWidth = windowWidth;
    } else {
        pageWidth = xScroll;
    }
    arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight)
    return arrayPageSize;
}

var AdMoveConfig = new Object();
AdMoveConfig.IsInitialized = false;
AdMoveConfig.ScrollX = 0;
AdMoveConfig.ScrollY = 0;
AdMoveConfig.MoveWidth = 0;
AdMoveConfig.MoveHeight = 0;
AdMoveConfig.Resize = function () {
    var winsize = GetPageSize();
    AdMoveConfig.MoveWidth = winsize[2];
    AdMoveConfig.MoveHeight = winsize[3];
    AdMoveConfig.Scroll();
}
AdMoveConfig.Scroll = function () {
    var winscroll = getPageScroll();
    AdMoveConfig.ScrollX = winscroll[0];
    AdMoveConfig.ScrollY = winscroll[1];
}
addEvent(window, "resize", AdMoveConfig.Resize);
addEvent(window, "scroll", AdMoveConfig.Scroll);

function AdMove(id) {
    if (!AdMoveConfig.IsInitialized) {
        AdMoveConfig.Resize();
        AdMoveConfig.IsInitialized = true;
    }
    var obj = document.getElementById(id);
    obj.style.position = "absolute";
    var W = AdMoveConfig.MoveWidth - obj.offsetWidth;
    var H = AdMoveConfig.MoveHeight - obj.offsetHeight;
    var x = W * Math.random()
        , y = H * Math.random();
    var rad = (Math.random() + 1) * Math.PI / 6;
    var kx = Math.sin(rad)
        , ky = Math.cos(rad);
    var dirx = (Math.random() < 0.5 ? 1 : -1)
        , diry = (Math.random() < 0.5 ? 1 : -1);
    var step = 1;
    var interval;
    this.SetLocation = function (vx, vy) { x = vx;
        y = vy; }
    this.SetDirection = function (vx, vy) { dirx = vx;
        diry = vy; }
    obj.CustomMethod = function () {
        obj.style.left = (x + AdMoveConfig.ScrollX) + "px";
        obj.style.top = (y + AdMoveConfig.ScrollY) + "px";
        rad = (Math.random() + 1) * Math.PI / 6;
        W = AdMoveConfig.MoveWidth - obj.offsetWidth;
        H = AdMoveConfig.MoveHeight - obj.offsetHeight;
        x = x + step * kx * dirx;
        if (x < 0) { dirx = 1;
            x = 0;
            kx = Math.sin(rad);
            ky = Math.cos(rad); }
        if (x > W) { dirx = -1;
            x = W;
            kx = Math.sin(rad);
            ky = Math.cos(rad); }
        y = y + step * ky * diry;
        if (y < 0) { diry = 1;
            y = 0;
            kx = Math.sin(rad);
            ky = Math.cos(rad); }
        if (y > H) { diry = -1;
            y = H;
            kx = Math.sin(rad);
            ky = Math.cos(rad); }
    }
    this.Run = function () {
        var delay = 10;
        interval = setInterval(obj.CustomMethod, delay);
        obj.onmouseover = function () { clearInterval(interval); }
        obj.onmouseout = function () { interval = setInterval(obj.CustomMethod, delay); }
    }
}

</script> 

<div id="ad1" style="z-index:5">
    <a href="#" target="_blank">
        <span>嘻嘻</span>
        <img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1602851694598&di=450fa0c05399c22df59a603aacf7255b&imgtype=0&src=http%3A%2F%2Fku.90sjimg.com%2Felement_pic%2F16%2F07%2F04%2F095779c24cc2110.jpg" style="width:20px">
    </a> 
</div>  
<script type="text/javascript">
var ad1 = new AdMove("ad1");
ad1.Run();
//多组漂浮 
// var ad1=new AdMove("ad2"); 
// ad2.Run(); 
</script>
</body>

</html>
 

跑马灯防盗的作用

由于跑马灯一直在屏幕上滚动,用户如果录制视频,会将跑马灯的信息一并录制下来。这个时候,如果跑马灯展示的信息是用户id、用户名,就可以在看到视频后明确是谁录制的。可以一定程度上防止用户录制视频传播的问题。

本文地址:https://xzo.com.cn/develop/js/983.html

有帮助,很赞!

信息来源:下载鸥
信息标签
导出教程 下载word版教程
发表评论 共有条评论
关于JS/JQuery


JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

JavaScript十分强大,不管是前端页面开发、视觉动态渲染、数据交互还是后端逻辑处理,都可以通过JS实现。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中。

推荐JS/JQuery开发教程
JS怎样做倒计时效果?
JS怎样做倒计时效果?

在各种盛大的节日、活动前,网站制作倒计时特效可有效给活动页引流。那么,怎样...

1 330
JS验证手机是否11位的做法
JS验证手机是否11位的做法

在网站表单提交前,我们往往需要验证一下信息避免错误数据,那么,怎样验证手机号...

1 308
jquery怎样获取textarea用户输入的行数?
jquery怎样获取textarea用户输入的行数?

jQuery是一个相当好用的js插件,通过jquery我们可以实现很多功能,例如今天要介...

0 429
JS控制输入字数的两个方案
JS控制输入字数的两个方案

我们在文章输入框中经常有用到字数控制,但字数控制有两种方案,一种是字母/空...

0 289
js判断windows操作系统还是mac os系统
js判断windows操作系统还是mac os系统

网站日常访客主要是windows和mac os两种操作系统,如果网站提供资源下载,则需...

0 1507
js网站视频播放器ckplayer和dplayer优缺点分析
js网站视频播放器ckplayer和dplayer优缺点分析

dplayer和ckplayer都是非常流行的web视频播放器,二者都占有相当大的用户市场...

0 1297
JS判断苹果iPhone与iPad、安卓设备类型适配
JS判断苹果iPhone与iPad、安卓设备类型适配

在网站开发的过程中,一些涉及到资源下载的网站会通过判断不同系统手机来展示...

3 515
JS获取浏览器语言(中英文多语言站)并自动跳转代码
JS获取浏览器语言(中英文多语言站)并自动跳转代码

如果是多语言站点,主动获取浏览器默认语言并自动进行跳转可以有效降低跳出率...

0 738
随机JS/JQuery开发教程
Ajax请求如何带上Cookie
Ajax请求如何带上Cookie

cookie是网站开发过程中最常使用的元素了,合理并优质的使用cookie,可以让我们...

0 280
css清除浮动导致布局错乱的3个方法
css清除浮动导致布局错乱的3个方法

因为浮动会导致元素脱离标准流,导致其父元素出现一些看上去比较异常的现象。...

0 254
JS怎样添加网站右键菜单?
JS怎样添加网站右键菜单?

js右键控制一方面可以简单防止他人审查代码,另一方面可以更好的自定义右键属...

0 258
js判断windows操作系统还是mac os系统
js判断windows操作系统还是mac os系统

网站日常访客主要是windows和mac os两种操作系统,如果网站提供资源下载,则需...

0 1507
js点击追加信息到textarea
js点击追加信息到textarea

通过灵活运用js,我们可以轻松实现点击追加相关信息到textarea的功能。这个功...

0 456
jQuery监听点击事件弹出关注二维码教程
jQuery监听点击事件弹出关注二维码教程

通过jQuery实现点击关注按钮弹出二维码是一个比较常用的功能,今天鸥哥讲讲这...

0 349
相对路径和绝对路径要如何选择?
相对路径和绝对路径要如何选择?

表示路径的方法有两种:相对路径,绝对路径。我们何时用相对路径,何时用绝对路径...

0 338
JS控制输入字数的两个方案
JS控制输入字数的两个方案

我们在文章输入框中经常有用到字数控制,但字数控制有两种方案,一种是字母/空...

0 289
客服QQ:341553759
点击咨询 常见问题 >
官方交流群:90432500
点击加入