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/ ...
随机推荐
- 平滑处理Smooth之图像预处理算法-OpenCV应用学习笔记三
大清早的我们就来做一个简单有趣的图像处理算法实现,作为对图像处理算法学习的开端吧.之所以有趣就在于笔者把算法处理的各个方式的处理效果拿出来做了对比,给你看到原图和各种处理后的图像你是否能够知道那幅图对 ...
- MyEclipse使用技巧
1. 大小写切换: Ctrl + Shift + X 大写: Ctrl + Shift + Y 小写: 2. 自动导包: Ctrl + Shift + O 3. 运行前自动保存 ...
- smartroute简单集成集群聊天通讯
在制定一个规模比较多大的聊天应用时,往往需要制定部署多个应用服务,其一可以保障服务的可靠性,其二可以增加用户负载量.但制定这样一种应用体系是一件复杂的事情,毕竟同一群体的用户实际上会在不同的服务器接入 ...
- Android前端人员与后台开发的撕逼(一)
首先表明一下身份,本人是Android前端开发人员,本篇只做合理性探讨,不进行人身攻击: 其次希望各位大神进行点评!点评!点评! 我们讨论一下接口的两种返回方式,直接举例说明一下,假设书籍信息表有30 ...
- 【C语言学习】《C Primer Plus》第3章 数据和C
学习总结 1.C基本数据类型使用11个关键字:int.long.short.unsigned.char.float.double.signed._Bool._Complex和_Imaginary. 2 ...
- 冲刺阶段 day 10
项目进展 目前我们已经完成了系部管理,教师管理,班级管理,学生管理这四大部分代码的编写及数据库的搭建与连接.就差最后专业管理这一部分了. 存在问题 其实我们从开始这个项目到现在,最大的问题还是在代码编 ...
- Linux Shell变量
200 ? "200px" : this.width)!important;} --> 介绍 变量是shell脚本中必不可少的组成部分,在脚本中使用变量不需要提前声明.在ba ...
- [php入门] 2、基础核心语法大纲
1 前言 最近在学PHP,上节主要总结了PHP开发环境搭建<[php入门] 1.从安装开发环境环境到(庄B)做个炫酷的登陆应用>.本节主要总结PHP的核心基础语法,基本以粗轮廓写,可以算作 ...
- [ACM_几何] Fishnet
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28417#problem/C 本题大意:有一个1X1的矩形,每边按照从小到大的顺序给n ...
- django开发个人简易Blog——数据模型
提到数据模型,一定要说一下MVC,MVC框架是现代web开发中最流行的开发框架,它将数据与业务逻辑分开,减小了应用之间的高度耦合.个人非常喜欢MVC开发框架,除了具有上述特性,它使得web开发变得非常 ...