zoukankan      html  css  js  c++  java
  • JavaScript及兼容性笔记

    1. Json to String

    JSON.stringify(jsonobj)//(IE8+,Chrome 1+,FF 3+) 
    //参考 http://www.nowamagic.net/librarys/veda/detail/374

     2. 页面刷新location.reload()和location.href=location.href

      前者相当于页面右键刷新/F5/刷新按钮;后者相当于浏览器地址栏回车。

    3. 0==""

      一定要注意,0=="" 在js里是true的。

    4. 调用iframe

      document.getElementById("fileUpFrame").contentWindow.document.form.file.click();
      fileUpFrame.document.form.file.click();
      frames["fileUpFrame"].document.form.file.click();

    5. 无刷新上传文件

      var fraFileInput=fraForm.file;
      fraFileInput.onchange=function(){
      var fileName=this.value;
      fraForm.submit.click();
      }
      fraFileInput.click();

      注册file的onchange事件一定要在.click代码之前,否则ie有可能会注册不上onchange事件.

    6. IE的键盘事件

      ie6 7 8 在window上注册的键盘事件无效,只能注册到document上;

      ie9+及其他浏览器window.onkeydown事件晚于document.onkeydown事件;

      ie8- document.onkeydown=function (e){没有传入事件对象,需要window.event} 

    7. IE6-7 字符串处理问题

      不支持使用数组的下标方法 txt[n]获取字符,需要使用txt.substr(n,1);

    8. 获取鼠标在div(div#box>div.one*5) 内的偏移

      假设各层都是offset定位元素,并且鼠标事件发生在其中一个div.one上,可以有两种方法
      (1)加法:
      鼠标事件在div.one的偏移+div.one在div#box的偏移
      e.offsetX+(div.one).offsetX   代码大致如下

    function getOffsetInParent(ele,parent){//js ele
        var x=0,y=0;
        while(ele && ele!=parent){
            x+=ele.offsetLeft;
            y+=ele.offsetTop;
            ele=ele.offsetParent;
        }
        return {x:x,y:y};
    }

      (2)减法:
      e.pageX-[(div#box).offsetLeft+div#box相对body的offsetLeft]
      祝:因为pad等移动端的touch事件没有e.offsetX属性,所以兼容性的方案是使用减法。

     9.获取当前视口高度
      document.documentElement.clientHeight 和window.innerHeight(IE9+)。
      绝大多数情况下,上面两种方法的返回值是一样的,但是在chrome中,如果doctype html外面存在script或者其他标签时,documentElement.clientHeight的返回值会>视口高度。

    转载请注明出处:http://www.cnblogs.com/youryida  欢迎留言或qq交流(1140215489)
  • 相关阅读:
    MySQL MHA高可用方案
    微服务架构的基础框架选择:Spring Cloud还是Dubbo?
    elasticsearch
    spring Cloud构建微服务架构
    SpringBoot-Learning
    JetBrains激活
    正则表达式(java)规则大全
    Android调用Webservice
    UCML针对数据表的修改自定义维护数据变更记录
    SQL游标模板
  • 原文地址:https://www.cnblogs.com/youryida/p/3242859.html
Copyright © 2011-2022 走看看