• JavaScript -- tips


    本篇提要

    • 进入与退出全屏
    • 获取鼠标选中的文本
    • 鼠标滚轮事件
    • 检测浏览器
    • 禁止网站内容被复制粘贴

    进入与退出全屏

    function FullScreen(){
    	var docElm = document.documentElement;
    	if (docElm.requestFullscreen) {         //标准
            docElm.requestFullscreen(); 
        } 
        else if (docElm.msRequestFullscreen) {      //ie11
            docElm.msRequestFullscreen(); 
        } 
        else if (docElm.mozRequestFullScreen) {     //FireFox
            docElm.mozRequestFullScreen(); 
        } 
        else if (docElm.webkitRequestFullScreen) {      //chrome等 
            docElm.webkitRequestFullScreen(); 
        } 
    }
    // 退出全屏
    function ExitScreen(){
    	if (document.exitFullscreen) { 
            document.exitFullscreen(); 
        } 
        else if (document.msExitFullscreen) { 
            document.msExitFullscreen(); 
        } 
        else if (document.mozCancelFullScreen) { 
            document.mozCancelFullScreen(); 
        } 
        else if (document.webkitCancelFullScreen) { 
            document.webkitCancelFullScreen(); 
        } 
        
    }
    

    可能出于用户操作体验的考虑吧,客户端javascript让浏览器全屏只能通过鼠标点击事件去触发

    获取鼠标选中的文本

    1、CSS3 ::selection 选择器(改变选中文本样式)

    使被选中的文本的背景色成为#2fe1a8:

    p::selection{background:#2fe1a8;} 
    p::-webkit-selection{background:#2fe1a8;} 
    p::-moz-selection{background:#2fe1a8;} 
    

    2、获取鼠标选中的文本:

    let text='';
    if (window.getSelection) {
        text = window.getSelection().toString();
    } else if (document.selection && document.selection.type != "Control") {
        text = document.selection.createRange().text;
    }
    console.log(text)
    

    鼠标滚轮事件

    <script type="text/javascript">
    // 滚动事件
    var scrollFunc = function(e) {
        e = e || window.event;
        if (e.wheelDelta) {
            if (e.wheelDelta > 0) {
                console.log('鼠标滚轮向上滚动!')
            } else if (e.wheelDelta < 0) {
                console.log('鼠标滚轮向下滚动!')
            }
        }
    }
    //给页面绑定滑轮滚动事件  
    if (document.addEventListener) { //firefox  
        document.addEventListener('DOMMouseScroll', scrollFunc, false);
    }
    //滚动滑轮触发scrollFunc方法  //ie 谷歌  
    document.onmousewheel = scrollFunc;
    </script>
    

    检测浏览器

    // 检测浏览器
    function myBrowser(){
    	var userAgent = navigator.userAgent;    //取得浏览器的userAgent字符串
    	var isOpera = userAgent.indexOf("Opera") > -1;
    	if (isOpera) {      //判断是否Opera浏览器
    		return "Opera"
    	}; 
    	if (userAgent.indexOf("Firefox") > -1) {        //判断是否Firefox浏览器
    		return "FF";
    	} 
    	if (userAgent.indexOf("Chrome") > -1){
    	  return "Chrome";
    	 }
    	if (userAgent.indexOf("Safari") > -1) {     //判断是否Safari浏览器
    		return "Safari";
    	} 
    	if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {       //判断是否IE浏览器
    		return "IE";
    	}; 
    }
    
    
    var mb = myBrowser();   
    
    
    function isIE() { 
    	if (!!window.ActiveXObject || "ActiveXObject" in window){
    		// ie10-11
    		return true;
    	}else{
    		if ("IE" == mb) {
    			alert("我是 IE");
    		}
    		if ("FF" == mb) {
    		    alert("我是 Firefox");
    		}
    		if ("Chrome" == mb) {
    		    //检测是否是谷歌内核(可排除360及谷歌以外的浏览器)
    			function isChrome(){
    				var ua = navigator.userAgent.toLowerCase();
    				return ua.indexOf("chrome") > 1;
    			}
    			
    			function _mime(option, value) {
    				var mimeTypes = navigator.mimeTypes;
    				for (var mt in mimeTypes) {
    					if (mimeTypes[mt][option] == value) {
    						return true;
    					}
    				}
    				return false;
    			}
    			var is360 = _mime("type", "application/vnd.chromium.remoting-viewer");          
    			if (isChrome() && is360) { 
    				alert("我是360");
    			}
    		}
    		if ("Opera" == mb) {
    			alert("我是 Opera");
    		}
    		if ("Safari" == mb) {
    			alert("我是 Safari");
    		}
    	}
    }
    

    禁止网站内容被复制粘贴

    <script>
    	// 禁止
    	document.oncontextmenu=new Function("event.returnValue=false"); 
        document.onselectstart=new Function("event.returnValue=false"); 
    
        // 启用
        document.oncontextmenu=""; 
        document.onselectstart=true; 
    </script>
    

    待续……

  • 相关阅读:
    pta建立与遍历二叉树
    Pikachu-SSRF(服务器端请求伪造)
    Pikachu-Sql Inject(SQL注入)
    Pikachu-RCE(远程命令/代码执行漏洞)
    Pikachu-php反序列化
    Pikachu-over permission(越权操作)
    Pikachu-File Inclusion(文件包含漏洞)
    Pikachu-CSRF(跨站请求伪造)
    CMS-熊海网站内容管理系统漏洞测试
    DVWA-命令执行
  • 原文地址:https://www.cnblogs.com/adoctors/p/9250971.html
Copyright © 2020-2023  润新知