解决用户调取源码 自定义右键菜单

发布于 2020-04-12  548 次阅读


1.右击鼠标,点击查看源代码。

解决鼠标右击事件,就是我们自己实现右击事件,并且在右击事件函数里什么都不做。这样就弹不出右击菜单了。

        /**禁止右击事件菜单弹出*/ 
        document.οncοntextmenu=ContextMenu; 
        function ContextMenu() { 
            return false; 
        }

2.自定义右键菜单。

htmlcssjs
        <ul>
            <li><a href="https://www.baidu.com">百度</a></li>
            <li>内容2</li>
            <li>内容3</li>
            <li>内容4</li>
        </ul>
        *{
            margin: 0;
            padding:0;
        }
        body{
            height: 5000px;
        }

        ul,li,ol{
            list-style: none;
        }

        ul{
            width: 100px;
            border: 1px solid #000;
            padding: 20px 15px;
            position: fixed;
            display: none;
        }

        li{
            width: 100%;
            height: 40px;
            text-align: center;
            line-height: 40px;
        }
        var oUl = document.querySelector('ul');
        document.addEventListener('contextmenu', function (e) {
            e = e || window.event;
            // 通过事件对象,阻止默认事件的执行
            if (e.preventDefault) {
                // 标准浏览器
                e.preventDefault();
            } else {
                // 低版本IE
                e.returnValue = false;
            }
            // 1,让菜单div,显示
            oUl.style.display = 'block';
            // 2,将鼠标点击的坐标,设定为ul的定位坐标
            // 定位位置,是相对于,视窗窗口的定位的
            oUl.style.top = e.clientY + 'px';
            oUl.style.left = e.clientX + 'px';
        })
        // 点击左键,让 div 显示为 none 消失
        // 不是 取消删除绑定的事件     
        document.addEventListener('click' , function(){
            oUl.style.display = 'none';
        })

3.按F12查看源代码

4.按ctrl+s保存下来,看源代码

其次,我们禁止使用ctrl+s、F12、ctrl+shift+I。代码如下:

        /** 全局事件监听*/
        document.body.onkeydown  = function(e){
            var keyCode = e.keyCode || e.which || e.charCode;
            var ctrlKey = e.ctrlKey || e.metaKey;
            if(ctrlKey && (keyCode == 83 || keyCode == 85 || keyCode == 73)) {
                e.preventDefault();
                return false;
            }else if(keyCode && keyCode == 123){
                return false;
            }
        }

一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。