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的返回值会>视口高度。

JavaScript及兼容性笔记的更多相关文章

  1. JavaScript语言精粹笔记

    JavaScript语言精粹笔记 掌握语言的每个特性可以让你出风头,但是并不推荐,因为一部分的特性带来的麻烦可能远超本身的价值.正如书中所言,坏的材料并不能雕刻出好的作品,要成为一名更好的程序员,要取 ...

  2. JavaScript看书笔记01

    JavaScript看书笔记... ------------------- JavaScript允许var定义语句出现在函数内部的任意位置.JS中使用Var来显示的给变量声明 JavaScript是一 ...

  3. JavaScript正则表达式学习笔记(二) - 打怪升级

    本文接上篇,基础部分相对薄弱的同学请移步<JavaScript正则表达式学习笔记(一) - 理论基础>.上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaSc ...

  4. 《你不知道的javascript》读书笔记2

    概述 放假读完了<你不知道的javascript>上篇,学到了很多东西,记录下来,供以后开发时参考,相信对其他人也有用. 这篇笔记是这本书的下半部分,上半部分请见<你不知道的java ...

  5. 《编写可维护的javascript》读书笔记(中)——编程实践

    上篇读书笔记系列之:<编写可维护的javascript>读书笔记(上) 上篇说的是编程风格,记录的都是最重要的点,不讲废话,写的比较简洁,而本篇将加入一些实例,因为那样比较容易说明问题. ...

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

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

  7. javascript正则表达式 - 学习笔记

    JavaScript 正则表达式 学习笔记 标签(空格分隔): 基础 JavaScript 正则表达式是用于匹配字符串中字符组合的模式.在javascript中,正则表达式也是对象.这些模式被用于Re ...

  8. JavaScript 事件兼容性写法

    1.以下是JavaScript事件兼容性写法,使用者可以随意使用,兼容所有浏览器.包括IE6(亲测) <!DOCTYPE html> <html> <head> & ...

  9. JavaScript简易学习笔记

    学习地址:http://www.w3school.com.cn/js/index.asp 文字版: https://github.com/songzhenhua/github/blob/master/ ...

随机推荐

  1. ABP框架详解(三)Domain

    此处的Domain主要指Abp类库根目录下Domain文件夹.顾名思义该目录下是用来存放与领域实体,领域逻辑执行,存储,领域服务相关的内容. 1.Entities (1)为整个Abp框架后期开发的所有 ...

  2. 手机浏览器,微信中播放amr录音

    由于微信公众号开发中,临时素材只有三天的有效期,但是客户要求所有录音永久保存,永久素材数量又有限制,故只能把录音保存到服务器上.但是存到服务器上有一个问题,手机微信中无法直接播放amr录音.无意中发现 ...

  3. CMD命令小结

    C:\Windows\Explorer.exe “文件具体目录(要加文件后缀名)”,(Explorer.exe后有一个空格,例如C:\Windows\Explorer.exe C:\temp\New ...

  4. 解压缩c#

    protected void btn_ServerClick(object sender, EventArgs e)    {        string strtxtPath = "E:/ ...

  5. EQueue - 详细谈一下消息持久化以及消息堆积的设计

    前言 之前写了一篇文章,总体介绍了EQueue.在看这篇文章之前如果还没看过那篇文章,可能会看不懂这篇文章.所以建议没看过的朋友务必先看一下那篇文章中所提到的各种概念,这样才能更好的理解本文所说的内容 ...

  6. C++ REST SDK的基本用法

    微软开发了一个开源跨平台的http库--C++ REST SDK(http://casablanca.codeplex.com/),又名卡萨布兰卡Casablanca,有个电影也叫这个名字,也许这个库 ...

  7. Linux1:Linux概述

    为什么服务器尤其大型服务器都使用Linux系统 服务器尤其是大型服务器一般都使用Linux系统,有以下几点原因: 1.成本低,Linux操作系统是免费的 2.安全性好,Linux采取了许多的安全措施, ...

  8. 规范化的软件项目演进管理--从 Github 使用说起

    规范化的软件项目演进管理 从 Github 使用说起 1   前言 首先,本文的层次定位是:很基本很基础的 Github 工具的入门级应用,写给入门级的用户看的. 基本上工作过几年的人,下面描述的这些 ...

  9. 开源项目asmjit——调用自定义方法demo以及windbg调试

    asmjit是一个开源项目,使用它可以将代码即时的编译成机器码,也就是所谓的jit技术. 初次接触这个项目,编写了一个demo,学习它的使用方法. 现将编写的demo以及调试jit生成的机器码的过程总 ...

  10. 不插网线,看不到IP的解决办法

    在Windows中,如果不插网线,就看不到IP地址,即使这个块网卡已经绑定了固定IP,原因是操作系统开启了DHCP Media Sense功能,该功能的作用如下: 在一台使用 TCP/IP 的基于 W ...