js不常用属性

本文介绍如何利用DOM操作实现元素水平居中,并通过document.compatMode判断浏览器渲染模式。同时,介绍了如何解析并执行HTML中的内联JS代码,以及如何获取表单对象的元素数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

offset

DOMObject.offsetWidth;
会得到的是这个DOM对象的width和padding的和。

document.compatMode

document.compatMode用来判断当前浏览器采用的渲染方式。
可能会得到两种答案:
BackCompat:标准兼容模式关闭。
CSS1Compat:标准兼容模式开启。
当document.compatMode等于BackCompat时,浏览器客户区宽度是document.body.clientWidth;
当document.compatMode等于CSS1Compat时,浏览器客户区宽度是document.documentElement.clientWidth。
以下代码实现了水平居中:

   function layerCenterV(obj) {
        var lca,lcb,lcx,iebody,dsocleft;
        if(window.innerWidth){
            lca=window.innerWidth;
        }
        else{
            lca=document.body.clientWidth;
        }
        lcb=obj.offsetWidth;
        lcx=(Math.round(lca/2))-(Math.round(lcb/2));
        //BackCompat:标准兼容模式关闭。   CSS1Compat:标准兼容模式开启。
        iebody=(document.compatMode!="BackCompat")?document.documentElement:document.body;
        dsocleft=document.all?iebody.scrollLeft:window.pageXOffset;
        obj.style.left=lcx+dsocleft+"px";
    }
    var cc=document.getElementById("white");
    layerCenterV(cc);

eval(“js语句”)

带用这个函数可以立即执js语句,在很多情况下,当使用了ajax以后返回来的内容可能有多个c

   function dojs(inText) {
          var si=0;
          while(true){
              //找到<script>的下标  si为从哪开始找<script>
              var ss=inText.indexOf("<"+"script"+">",si);
              if(ss==-1){
                  return -1;
              }
              //找到<  / script>的下标  ss为从哪开始找< / script>
              var se=inText.indexOf("<"+"/"+"script"+">",ss);
              if(se==-1){
                  return -1;
              }
              si=se+9;
              var sc=inText.substring(ss+8,se);
              eval(sc);
          }
    }
    var mm="<"+"script"+">"+"console.log('1')"+"<"+"/"+"script"+">"+"<"+"script"+">"+"console.log('3')"+"<"+"/"+"script"+">";
    dojs(mm);   //会输出1  3

表单对象的length属性

会输出表达里边一共有多少个表单元素

 <form id="form">
       <input type="text" name="firstName"><br>
       <input type="hidden" name="latName"><br>
       <input type="password" name="password"><br>
       <textarea name="notes"></textarea><br>
       <select name="gender">
           <option value="male">Male</option>
           <option value="female">Female</option>
       </select>
       <input type="radio" name="married" value="yes">Yes<br>
       <input type="radio" name="married" value="no">No<br>
       <input type="checkbox" name="haveKids">Check if you haveKids</input><br>
   </form>
</body>
<script>
    var form=document.getElementById("form");
     function form_xml(form) {
        //此时的form.length为8  一个下拉框为一个表单元素
         console.log(form.length);
    }
    form_xml(form);  //8

将一个表单对象里边内容转化为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值