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的返回值会>视口高度。
JavaScript及兼容性笔记的更多相关文章
- JavaScript语言精粹笔记
JavaScript语言精粹笔记 掌握语言的每个特性可以让你出风头,但是并不推荐,因为一部分的特性带来的麻烦可能远超本身的价值.正如书中所言,坏的材料并不能雕刻出好的作品,要成为一名更好的程序员,要取 ...
- JavaScript看书笔记01
JavaScript看书笔记... ------------------- JavaScript允许var定义语句出现在函数内部的任意位置.JS中使用Var来显示的给变量声明 JavaScript是一 ...
- JavaScript正则表达式学习笔记(二) - 打怪升级
本文接上篇,基础部分相对薄弱的同学请移步<JavaScript正则表达式学习笔记(一) - 理论基础>.上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaSc ...
- 《你不知道的javascript》读书笔记2
概述 放假读完了<你不知道的javascript>上篇,学到了很多东西,记录下来,供以后开发时参考,相信对其他人也有用. 这篇笔记是这本书的下半部分,上半部分请见<你不知道的java ...
- 《编写可维护的javascript》读书笔记(中)——编程实践
上篇读书笔记系列之:<编写可维护的javascript>读书笔记(上) 上篇说的是编程风格,记录的都是最重要的点,不讲废话,写的比较简洁,而本篇将加入一些实例,因为那样比较容易说明问题. ...
- JAVASCRIPT 浏览器兼容性问题及解决方案列表
JAVASCRIPT 浏览器兼容性问题及解决方案列表(1)获取HTML元素只兼容IE:document.all.hello hello 兼容所有: document.getElementById(“h ...
- javascript正则表达式 - 学习笔记
JavaScript 正则表达式 学习笔记 标签(空格分隔): 基础 JavaScript 正则表达式是用于匹配字符串中字符组合的模式.在javascript中,正则表达式也是对象.这些模式被用于Re ...
- JavaScript 事件兼容性写法
1.以下是JavaScript事件兼容性写法,使用者可以随意使用,兼容所有浏览器.包括IE6(亲测) <!DOCTYPE html> <html> <head> & ...
- JavaScript简易学习笔记
学习地址:http://www.w3school.com.cn/js/index.asp 文字版: https://github.com/songzhenhua/github/blob/master/ ...
随机推荐
- 【转载】CentOS6.5_X64下安装配置MongoDB数据库
[转载]CentOS6.5_X64下安装配置MongoDB数据库 2014-05-16 10:07:09| 分类: 默认分类|举报|字号 订阅 下载LOFTER客户端 本文转载自zhm&l ...
- C#中的常见集合类的比较
一.非泛型集合与泛型集合 非泛型集合:Array.ArrayList.HashTable.Queue.Statck.SortedList 泛型集合:List.Dictionary.Queue.Stac ...
- linux-12基本命令之 cat,more,head, tail ,tr,od,wc,cut,diff
1.cat 命令 用于查看纯文本文件(较短),格式:"cat[选项][文件]" 查看文本文件 [root@localhost /]# cat 文件名 cat 参数 参数 作用 -n ...
- CMD命令小结
C:\Windows\Explorer.exe “文件具体目录(要加文件后缀名)”,(Explorer.exe后有一个空格,例如C:\Windows\Explorer.exe C:\temp\New ...
- 【读书笔记】.Net并行编程(三)---并行集合
为了让共享的数组,集合能够被多线程更新,我们现在(.net4.0之后)可以使用并发集合来实现这个功能.而System.Collections和System.Collections.Generic命名空 ...
- 使用decode函数实现统计
从上个星期起就在开始做统计图,各种统计图,昨天做的统计效果图如下: 在这里要根据工作平台和机构做统计,其中当字段A等于某个值时需要统计起来,也就是说假设等于2时需要做统计,字段 ...
- merge sort and quick sort 自己去理解吧
<?php $digits=array(,,,,,,,); function quickSort($arr){ $len=count($arr); ){ return $arr; } $midK ...
- [异常解决] android studio检测不到手机的解决办法——ADB驱动自己安装
用android studio搭建安卓开发环境比eclipse简单的多,仅仅下载一个1个G左右的安装包安装即可. 安装好之后随便建一个hello world工程,想用实体手机调试要点: 选择USB设备 ...
- java.rmi.NoSuchObjectException: no such object in table
jmx链接的时候,最简单的例子都行不通,郁闷,出现了: 参考:http://reiz6153.blog.163.com/blog/static/401089152009442723208/ 代码: M ...
- Atitit 基于meta的orm,提升加速数据库相关应用的开发
Atitit 基于meta的orm,提升加速数据库相关应用的开发 1.1. Overview概论1 1.2. Function & Feature功能特性1 1.2.1. meta api2 ...