js 禁止通过F12在控制台内修改页面元素


<script>
/**
    将所有元素置为不可修改
**/
function readOnlyPage(){

/**
    查找所有元素
**/
        let elements = document.all;
        for ( var i = 0; i < elements.length; i++) {
            setReadonlyOfElement(elements[i]);
        }
}

 /**
*    此readonly方法设置以下几种元素:
*    select-one
*    hidden、password、text、textarea
*    button
*    checkbox
*    radio
*    此方法为父方法,元素皆可调用此方法进行不可修改操作
*/
function setReadonlyOfElement(iElement){
      var elementType = iElement.type;
      if ((elementType == "hidden") || (elementType == "password") ||
        (elementType == "text") || (elementType == "textarea")){
        if(iElement.setReadonlyFlag==true){
          return;
        }else{
          iElement.setReadonlyFlag = true;
        }
        if(iElement.onblur!=null){
            iElement.oldOnblur = iElement.onblur;
            iElement.onblur = functionDoNothing;
        }
        if(iElement.ondblclick!=null){
            iElement.oldOndblclick = iElement.ondblclick;
            iElement.ondblclick = functionDoNothing;
        }
        if(iElement.onfocus!=null){
            iElement.oldOnfocus = iElement.onfocus;
            iElement.onfocus = functionDoNothing;
        }
 
        if(iElement.className!=null){
            iElement.oldClassName = iElement.className;
        }
        iElement.className="readonly";
        iElement.readOnly = true;
      }
      // 不要把按钮设只读
      //else if(elementType=="button"){
      //  if(iElement.setReadonlyFlag==true){
      //    return;
      //  }else{
      //    iElement.setReadonlyFlag = true;
      //  }
      //}
      else if(elementType == "checkbox"){
        setCheckBoxReadonly(iElement,true);
      }
      else if(elementType == "radio"){
        setRadioReadonly(iElement,true)
      }else if(elementType == "select-one"){
          if(iElement.setReadonlyFlag==true){
              return;
          }else{
              iElement.setReadonlyFlag = true;
          }
          var optionTags = new Array();
          var index = 0;
          var optionObj;
          var elementValue = iElement.value;
          var tag;
          var options = iElement.options;
          if(options.length>1){
              for(var j = options.length-1; j >= 0; j--){
                  tag = new Array();
                  optionObj=options[j];
                  tag["value"] = optionObj.value;
                  tag["text"]  = optionObj.text;
                  optionTags[index++] = tag;
                  if(tag["value"] != elementValue){
                      iElement.remove(j);
                  }
              }
          }
          iElement.optionTags = optionTags;
          //iElement.className="readonly";
      }
    }
 
    function setCheckBoxReadonly(field,flag)
    {
      if(flag==true)
      {
        if(field.setCheckBoxReadonlyFlag!=true)
        {
          field.setCheckBoxReadonlyFlag=true;
          field.oldClassName = field.className;
          field.oldOnclick   = field.onclick;
          field.className = "readonlycheckbox";
          field.onclick = functionReturnFalse;
        }
      }
      else
      {
        if(field.setCheckBoxReadonlyFlag==true)
        {
          field.className = field.oldClassName;
          field.onclick = field.oldOnclick;
          field.setCheckBoxReadonlyFlag = false;
        }
      }
    }
 
    function setRadioReadonly(field,flag)
    {
      if(flag==true)
      {
        if(field.setRadioReadonlyFlag!=true)
        {
          field.oldClassName = field.className;
          field.oldOnfocus   = field.onfocus;
          field.className = "readonlyradio";
          field.onfocus = functionCancelFocus;
          field.disabled = true;
        }
      }
      else
      {
        if(field.setRadioReadonlyFlag==true)
        {
          field.className = field.oldClassName;
          field.onfocus = field.oldOnfocus;
          field.setRadioReadonlyFlag = false;
          field.disabled = false;
        }
      }
    }
    </script>

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值