JS方法备用方案

资源共享 · 05-14 10:46

JavaScript是一种广泛使用的编程语言,它在Web开发中扮演着重要的角色。在编写JavaScript代码时,我们经常使用一些常用的方法来完成任务。这些方法可以帮助我们更高效地编写代码,提高代码的可读性和可维护性。

掌握一些实用的JS方法,如同掌握烹饪中的调味秘诀。今天给大家分享一些关于JS代码的必备技巧,助你编码更高效,让程序像美食一样引人入胜。

索引

1.让页面滚动到顶部和底部
2.网站版权年份自动更新
3.屏蔽鼠标右键或指定按键
4.限制只能输入数字和几位数
5.禁用调试模式

1.让页面滚动到顶部和底部

a.顶部

将Class命名为go-top

jQuery('.go-top').on('click', function (e) {
    e.preventDefault();
    jQuery('html, body').animate({ scrollTop: 0 }, duration);
    return false;
})

b.底部

将Class命名为go-bottom

jQuery('.go-bottom').on('click', function (e) {
    var t = document.body.clientHeight;
    window.scroll({ top: t, left: 0, behavior: 'smooth' });
})

c.实现滚动效果

jQuery('.go-bottom').on('click', function (e) {
    (function smoothscroll() {
        const currentScroll = document.documentElement.scrollTop || document.body.scrollTop; // 已经被卷掉的高度
        const clientHeight = document.documentElement.clientHeight; // 浏览器高度
        const scrollHeight = document.documentElement.scrollHeight; // 总高度
        if (scrollHeight - 10 > currentScroll + clientHeight) {
            window.requestAnimationFrame(smoothscroll);
            window.scrollTo(0, currentScroll + (scrollHeight - currentScroll - clientHeight) / 2);
        }
    })();
})
该效果在本站任意页面中点击屏幕下方的"返回顶部"即可看到

2.网站版权年份自动更新

直接在网站的全局JS文件 foot 中或者在需要显示的地方加入以下代码即可:

<script type="text/javascript">
   <!-- Begin
       copyright=new Date();                 //取得当前的日期
       update=copyright.getFullYear();       //取得当前的年份
       document.write("&copy; Copyright 2024"+ update + " 刘郎阁版权所有");//update为自动更新的年份
    //  End -->
</script>

3.屏蔽鼠标右键或其他指定按键

方法1:

//屏蔽鼠标右键Ctrl+N、Shift+F10、F11、F5刷新、退格键
    function document.oncontextmenu(){ event.returnValue = false; }
    //屏蔽鼠标右键
    function window.onhelp(){ return false }
    //屏蔽F1帮助
    function document.onkeydown(){
        if ((window.event.altKey) && ((window.event.keyCode == 37) ||
            //屏蔽Alt+方向键←
            (window.event.keyCode == 39))) {
            //屏蔽Alt+方向键→
            alert("不准你使用ALT+方向键前进或后退网页!"); event.returnValue = false;
        } if ((event.keyCode == 8) ||
            //屏蔽退格删除键
            (event.keyCode == 116) ||
            //屏蔽F5刷新键
            (event.ctrlKey && event.keyCode == 82)) {
            //Ctrl+R
            event.keyCode = 0; event.returnValue = false;
        } if (event.keyCode == 122) { event.keyCode = 0; event.returnValue = false; }
        //屏蔽F11
        if (event.ctrlKey && event.keyCode == 78) event.returnValue = false;
        //屏蔽Ctrl+n
        if (event.shiftKey && event.keyCode == 121) event.returnValue = false;
        //屏蔽shift+F10
        if (window.event.srcElement.tagName == "A" && window.event.shiftKey) window.event.returnValue = false;
        //屏蔽shift加鼠标左键新开一网页
        if ((window.event.altKey) && (window.event.keyCode == 115))}
    //屏蔽Alt+F4
    window.showModelessDialog("about:blank", "", "dialogWidth:1px;dialogheight:1px"); return false; }}

方法2:

//屏蔽右键菜单
document.oncontextmenu = function (event) {
    if (window.event) {
        event = window.event;
    }
    try {
        var the = event.srcElement;
        if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) {
            return false;
        }
        return true;
    } catch (e) {
        return false;
    }
}
//屏蔽粘贴
document.onpaste = function (event) {
    if (window.event) {
        event = window.event;
    }
    try {
        var the = event.srcElement;
        if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) {
            return false;
        }
        return true;
    } catch (e) {
        return false;
    }
}
//屏蔽复制

//屏蔽剪切
document.oncut = function (event) {
    if (window.event) {
        event = window.event;
    }
    try {
        var the = event.srcElement;
        if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")) {
            return false;
        }
        return true;
    } catch (e) {
        return false;
    }
}
//禁止f12

function fuckyou() {
    window.close(); //关闭当前窗口(防抽)
    window.location = "about:blank"; //将当前窗口跳转置空白页
}
//禁止Ctrl+U
var arr = [123, 17, 18];
document.oncontextmenu = new Function("event.returnValue=false;"), //禁用右键

    window.onkeydown = function (e) {
        var keyCode = e.keyCode || e.which || e.charCode;
        var ctrlKey = e.ctrlKey || e.metaKey;
        console.log(keyCode + "--" + keyCode);
        if (ctrlKey && keyCode == 85) {
            e.preventDefault();
        }
        if (arr.indexOf(keyCode) > -1) {
            e.preventDefault();
        }
    }

function ck() {
    console.profile();
    console.profileEnd();
    //我们判断一下profiles里面有没有东西,如果有,肯定有人按F12了,没错!!
    if (console.clear) {
        console.clear()
    };
    if (typeof console.profiles == "object") {
        return console.profiles.length > 0;
    }
}

function hehe() {
    if ((window.console && (console.firebug || console.table && /firebug/i.test(console.table()))) || (
            typeof opera ==
            'object' && typeof opera.postError == 'function' && console.profile.length > 0)) {
        fuckyou();
    }
    if (typeof console.profiles == "object" && console.profiles.length > 0) {
        fuckyou();
    }
}
hehe();
window.onresize = function () {
    if ((window.outerHeight - window.innerHeight) > 200)
        //判断当前窗口内页高度和窗口高度,如果差值大于200,那么呵呵
        fuckyou();
}

document.onkeydown = function (event) {
    if ((event.keyCode == 112) || //屏蔽 F1
        (event.keyCode == 113) || //屏蔽 F2
        (event.keyCode == 114) || //屏蔽 F3
        (event.keyCode == 115) || //屏蔽 F4
        // (event.keyCode == 116) || //屏蔽 F5
        (event.keyCode == 117) || //屏蔽 F6
        (event.keyCode == 118) || //屏蔽 F7
        (event.keyCode == 119) || //屏蔽 F8
        (event.keyCode == 120) || //屏蔽 F9
        (event.keyCode == 121) || //屏蔽 F10
        (event.keyCode == 122) || //屏蔽 F11
        (event.keyCode == 123)) //屏蔽 F12
    {
        return false;
    }
}
window.onhelp = function () {
    return false;
}
以上两种方法,根据自己的需求进行删减即可。

注意:以上两种方法防小白不防大牛,在网址前加上以下代码:

view-source:

比如:https://m.baidu.com/

view-source:https://m.baidu.com/

或者保存网页下来也是可以看到网页代码的。

4.限制只能输入数字和几位数

const length = 2
const reg = new RegExp(`^\\d+(\\.\\d{1,${length}})?$`)

5.禁用调试模式

禁止访客使用右键、 F1键 到 F12键 (除了F5键)

document.addEventListener('contextmenu', function(e) {
  e.preventDefault();
}, false);

document.addEventListener('keydown', function(e) {

  if (e.ctrlKey && e.keyCode === 85) {
    e.preventDefault();
  }
  if (e.keyCode >= 112 && e.keyCode <= 123 && e.keyCode !== 116) {
    e.preventDefault();
  }
});

完!

优化

上一篇 : 雷池SafeLine:防护网站安全

下一篇 : CSS毛玻璃背景


  1. HowieHz   Lv1
    06-18 12:52 第7楼 中国上海市移动Windows 10 · Google Chrome

    哈哈这个屏蔽代码有点意思,可惜我用不到

  2. 肖寒武   Lv1
    05-21 08:44 第5楼 中国浙江省杭州市联通Windows 10 · Google Chrome

    妥妥的技术分享站

    1. 刘郎   博主
      05-21 08:47 第6楼 中国移动iPhone · Safari
      @肖寒武

      在分享的同时也在学习,两全其美,何乐而不为

  3. 浮沉流年   访客
    05-15 00:13 第3楼 中国新疆伊犁州电信iPhone · Safari

    虽然看不太懂 但我还是来看看并留下我的足迹

    1. 刘郎   博主
      05-15 07:19 第4楼 中国移动iPhone · Safari
      @浮沉流年

      早上好,欢迎常来

  4. obaby   Lv2
    05-14 14:55 第1个脚印 中国山东省青岛市联通iPhone · Google Chrome

    高产啊

    1. 刘郎   博主
      05-14 15:09 第2楼 中国移动iPhone · Safari
      @obaby

      常规操作😂

| 黔ICP备2024020400号-1 | 萌ICP备20246777号 | | 当前有 2 人在线 |
本站已加入BLOGS·CN
yjvc.cn
博友圈 星球穿梭
开往-友链接力