1.event

  IE9以下不支持直接获取event对象,所以需要写兼容:

    var event = event?event:window.event;

  IE8以下不支持event.target,但是可以通过event.srcElement来兼容:

    var eventTarget = event.srcElement?event.srcElement:event.target;

2.document.getElementsByClassName("...")

  IE8以下不支持,暂时没有解决办法;只能针对当前代码做Hack

3.new Date( str )格式错误

  如果str不是标准的时间格式"2014/12/9"之类的字符串,new Date会失败并返回一个错误结果;

  在Chrome下返回的是Invalid Date,在IE下返回的是NaN;

  在做错误结果处理时,记得带上NaN

4.getYear 获取年份

  在IE中拿到的是正常的2014,2013数值,而在Chrome等浏览器里拿到的是114,113,比正常年份少了个1900;获取完整年份应该使用getFullYear()函数,在各个浏览器内拿到的都是2014、2013等正常的年份数值 

5.stopPropagation 阻止冒泡

  IE9一下不支持使用event.stopPropagation()函数,应使用event.cancelBubble = true;

    var e = event?event:window.event;
    if (e.stopPropagation) {
      e.stopPropagation();
    }
    else{
      e.cancelBubble = true;
    }

6.setAttribute函数

  节点可以调用setAttribute函数来设置属性,但是ie7以下不支持通过该函数添加:class,cellspacing,cellpadding,onclick等

  如果直接用setAttribute,那么在ie7中新建的节点就没有样式且绑定事件失效。

  解决办法是直接通过属性进行赋值:(高级浏览器已向下兼容)

    node.className = "lee_calender";

    tableNode.cellSpacing = 0;

    tableNode.cellPadding = 0;

  点击事件的话,还是直接用addEventListener来绑定吧,但是要注意看下一条

7.addEventListener("click",function(){......})函数  

  该函数在ie6,7下失效,ie6,7应使用attachEvent函数,并且绑定事件为"onclick","onmouseover" 等

  不妨写一个兼容函数

  function bindEvent(obj,eve,method){

    if(obj.addEventListener){

      obj.addEventListener(eve,method);

    }

    else{

      eve = "on"+eve;

      obj.attachEvent(eve,method);

    }

  }

  调用时,直接bindEvent(document.getElementById("INPUT"),"click",function(){.......});   

8.console.log()

  console.log()函数在ie7,8下不能直接调用,ie7,8默认console是未初始化的

  所以版本发布之前记得用grunt对js文件进行压缩,删除这些测试时写的console.log

9.ajax相关

 *在ajax中,IE6以下不支持new XMLHttpRequest()。

  兼容性的类为new ActiveXObject("Microsoft.XMLHTTP");

 *IE浏览器中还存在ajax缓存的问题,可以通过以下办法:服务端在header设置cache:no-cache;前端ajax请求是可以在url后拼接时间戳;jQuery$.ajax中缓存可控

10.移动端浏览器全屏

UC:
  <meta name="full-screen" content="yes">
  <meta name="browsermode" content="application">
QQ:
  <meta name="x5-orientation" content="portrait">
  <meta name="x5-fullscreen" content="true">
  <meta name="x5-page-mode" content="app">

---遇到一些更一些,该好好记下浏览器兼容性及解决办法的知识点了-----

浏览器兼容性随手记:Javascript的更多相关文章

  1. javascript中new Date浏览器兼容性处理

    看下面的代码 <script type="text/javascript"> var dt1 = new Date('2016-3-4 11:06:12'); aler ...

  2. javascript IE与其他主流浏览器兼容性问题积累

    javascript兼容性问题 在javascript中,各个浏览器基本语法差距不大,其兼容问题主要出现在各个浏览器的实现上,尤其对事件的支持有很大问题,在此我就说说我知道的几个问题. ① 在标准的事 ...

  3. JAVASCRIPT 浏览器兼容性问题及解决方案列表

    JAVASCRIPT 浏览器兼容性问题及解决方案列表(1)获取HTML元素只兼容IE:document.all.hello hello 兼容所有: document.getElementById(“h ...

  4. CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案

    一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...

  5. CSS 多浏览器兼容性问题及解决方案

    兼容性处理要点1.DOCTYPE 影响 CSS 处理 2.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 ...

  6. 浏览器兼容性之Css篇

    本文与上一篇随笔<浏览器兼容性之Javascript篇>有一定关联,下来我会继续不断总结,旨在解决浏览器兼容性,对遇到类似问题的同仁有所帮助,如有更多解决浏览器兼容性的案例还望大家分享一起 ...

  7. 浏览器兼容性小整理和一些js小问题(后面会继续更新)

    最近在啃jQuery的源码,估计会啃到很多浏览器兼容性的问题,所以整理一下 1,IE下的内存泄露. 在IE中不在DOM树中的独立节点有javascript变量引用它的时候不会被回收. 解决:手动将该j ...

  8. web前端开发浏览器兼容性 - 持续更新

    浏览器兼容性问题又被称为网页或网站兼容性问题:不同浏览器内核及所支持的html等网页语言标准不同,不同客户端环境(如分辨率不同)造成实际显示效果未能达到预期理想效果 首先我们来看一下目前市面上常见的一 ...

  9. Web浏览器兼容性测试工具如何选择

    对于前端开发工程师来说,网页兼容性测试工程师而言,确保代码在各种主流浏览器的各个版本中都能正常工作是件很费时的事情,幸运的是,有很多优秀的工具可以帮助测试浏览器的兼容性,领测软件测试网向您推荐12款很 ...

随机推荐

  1. 详解Oracle的几种分页查询语句

    转载自:http://database.51cto.com/art/200904/118737.htm 分页查询格式: SELECT * FROM (SELECT A.*, ROWNUM RN FRO ...

  2. Asp.net 页面传值的方法

    ASP.NET页面传值的方法 From:Refresh-air 在面试的时候,经常会遇到这样的问题,其实我们会对其中的几种方法比较熟悉,因为项目中经常使用.但是要全面的回答ASP.NET中页面传值的方 ...

  3. fiddler工具条、状态栏、请求信息栏各按钮的作用

    1.fiddler工具条 2.fiddler状态栏 3.请求信息栏

  4. 使用pandas时遇到ValueError: numpy.dtype has the wrong size, try recompiling

    [问题]使用pandas时遇到ValueError: numpy.dtype has the wrong size, try recompiling [原因] 这是因为 Python 包的版本问题,例 ...

  5. 利用Nginx rewrite规则实现域名显性转发

    体验更优排版请移步原文:http://blog.kwin.wang/website/nginx-rewrite-realize-domain-forward.html 自己的blog域名最开始用的vb ...

  6. oracle执行sql文件

    oracle执行sql文件 在PL/SQL中直接用command window执行就可以了: PL/SQL developer----->File------>New---->com ...

  7. window 10 下解压缩版MySQL5.7.24的安装

    安装步骤: 1.下载mysql-5.6.40-winx64.zip https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.24-winx64.zip ...

  8. MyBait 符号大于 小于理解

    EQ 就是 EQUAL等于 NQ 就是 NOT EQUAL不等于 GT 就是 GREATER THAN大于 LT 就是 LESS THAN小于 GE 就是 GREATER THAN OR EQUAL ...

  9. x264改变输出分辨率的算法<转>

    x264改变输出分辨率的算法 在某些应用场景下,x264的输入视频分辨率与接收端输出的视频分辨率不同.例如编码端摄像头采集到的YUV数据为1280x720,而接收端视频显示窗口为640x480.对于这 ...

  10. ajax的post请求方式

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...