- 博客(21)
- 资源 (118)
- 收藏
- 关注
各浏览器对focusin/focusout事件的支持差异
浏览器版本:IE6/7/8/9IE10 preview2Firefox 5Safari 5Chrome 12Opera 11测试:IE6/7/8IE9/10Firefox5Safari5Chrome12Opera11el.onfocusinYYNNNYel.attachEvent('...
2011-08-24 09:41:26 227
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素,子元素依然能显示bug...
多数情况下隐藏(设置display:none)一个元素,无需依次将其内的所有子元素都隐藏。非要这么做,有时会碰到意想不到的bug。如下1,两个div,d1中包含d22,d1,d2都设置了absolute或relative3,隐藏d14,隐藏子元素d25,显示d1 这时IE6/7 and IE8/9/10(IE7模式)中会发现,子元素d2也能显示出了(别忘了,d2被dis...
2011-08-23 14:30:17 93
JavaScript判断变量是否为undefined两种方式差异
我们经常需要判断某个变量/属性是否为undefined。通常有两种写法 // 方式1typeof age === 'undefined';// 方式2age === undefined 这两种写法有什么区别吗? 应该使用哪一种呢?看看下面的例子 typeof age === 'undefined'; // true 标识符 age 没有声明过,输出t...
2011-08-22 13:47:12 133
对象无length属性时IE6/7中无法将其转换成伪数组(ArrayLike)
有时需要将数组转成伪数组(ArrayLike),如下var ary = ['one','two','three'];var obj = {}; // 没有length属性Array.prototype.push.apply(obj, ary);for(var i in obj){ alert(i + ': ' + obj[i]);} IE8/9/Firefo...
2011-08-22 08:47:52 112
Firefox/Opera不支持onselectstart事件
如下 <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>Firefox/Opera不支持onselectstart事件</title> </head> <body&
2011-08-21 00:11:25 71
IE6/7/8/9不支持exec的简写方式
如下 var ary = /h/('hello');alert(ary); IE6/7/8/9中报错Firefox/Safari/Chrome/Opera的最新版本均弹出了“h” 以上写法等价于 var ary = /h/.exec('hello'); 即 Firefox/Safari/Chrome/Opera浏览器...
2011-08-20 08:11:24 91
勿重复检测浏览器
拿添加事件示例 // 方式1function addEvent(el, type, fn){ if(el.addEventListener){ el.addEventListener(type, fn, false); }else{ el.attachEvent('on'+type, fn) }}// 方式2var addEvent = do...
2011-08-19 07:51:15 64
仅IE不支持setTimeout/setInterval函数的第三个以上参数
setTimeout/setInterval,这两个函数相信前端开发同学都很熟悉。它们在非IE(6-9)浏览器中还可以如下使用 setTimeout(function(obj){ alert(obj.a);}, 2000, {a:1}); 即传了第三个参数,第三个参数将作为回调函数的参数obj传入。在非IE浏览器中都弹出了1。这样有个好处,即解决了回调函数的执行上下文,比如...
2011-08-18 11:01:12 206
IE6/7/8/Opera不支持script元素的onerror事件
如下<!DOCTYPE HTML><html> <head> <meta charset="utf-8"> <title>IE6/7/8/Opera不支持script元素的onerror事件</title> <script src="jquery-1.5.23.j
2011-08-17 10:22:11 89
仅IE9/10/(Opera)同时支持script元素的onload和onreadystatechange事件
如下<!DOCTYPE HTML><html> <head> <meta charset="utf-8"> <title>IE9/10同时支持script元素的onload和onreadystatechange事件</title> <script src="http:/
2011-08-17 07:11:11 89
html5中可通过document.head获取head元素
今天,看一个国外网站发现人家获取head元素如下var head = document.head || document.getElementsByTagName('head')[0]; 后面的是我们常用的方式,前面的 document.head 着实第一次见。查资料发现原来是html5的东东。的确简单了,一个属性搞定。当然,IE6/7/8不支持。IE9/Safari/Chro...
2011-08-16 13:49:51 465
各浏览器对link标签onload/onreadystatechange事件支持的差异
1,onload事件<!DOCTYPE HTML><HTML> <HEAD> <meta charset="utf-8" /> <title>Link Element onload</title> <link type="text/css" rel="
2011-08-16 07:01:45 314
跨域请求之JSONP 三
script请求返回JSON实际上是脚本注入。它虽然解决了跨域问题,但它不是万能的。1,不能接受HTTP状态码2,不能使用POST提交(默认GET)3,不能发送和接受HTTP头4,不能设置同步调用(默认异步)...其最严重的就是不能提供错误处理,如果请求的代码正常执行那么会得到正确的结果。如果请求失败,如404,500之类,那么可能什么都不会发生。这...
2011-08-15 07:08:58 78
跨域请求之JSONP 二
续上篇,加两个实用功能1,增加data属性,请求参数2,增加scope属性,可以让回调函数在指定的上下文中执行 接口如下 Sjax.load(url, { data // 请求参数 (键值对字符串或js对象) success // 成功后回调函数 scope // 回调函数执行上下文 timestamp // 是否加时间戳}); ...
2011-08-14 08:25:43 80
跨域请求之JSONP 一
跨域请求的方式有很多种,1,iframe2,document.domain3,window.name4,script5,XDomainRequest (IE8+)6,XMLHTTPRequest (Firefox3.5+)7,postMessage (HTML5)8,后台代理.....
2011-08-13 10:46:06 70
JS Queue LazyLoad 之二
上一篇实现了对多个JS文件的顺序加载,这篇再完善丰富一下。加入回调函数,即每个JS文件加载后都有一次回调机会,这个回调是取决于使用者的。也就是说使用者可以配置是否回调,甚至指定某一个或多个回调。非常灵活,可以根据项目需求决定那些资源JS下载后进行回调。此外这篇还解决了重复资源加载问题。 QueueLazyLoad.js([ { url // JS路径 fn ...
2011-08-12 07:26:36 126
JS Queue LazyLoad 之一
前面三篇实现了多个JS并行加载,即各个JS文件相互不依赖。实现时仅顺序将其插入到head中。直至全部插入完毕才进行回调。并行下载的好处是效率较高。 但有时我们需要加载的JS模块之间存在相互依赖关系。如a,b,c三个JS文件。b.js中代码依赖于a中定义的某些函数或类,c.js又依赖b.js中的函数或类,而c中具有一个入口函数。这时得保证a,b,c顺序加载,否则如果c早于b或a先加载完,则可...
2011-08-11 14:20:55 83
JS/CSS module LazyLoad 之三
在开始这篇前,有两个小问题须说明一下 情况一LazyLoad.js(['a.js','a.js'],function(){}); 有人会问为什么要在页面中引入两次a.js? 我也想问。其实是多余的。但有人就喜欢这么用,那怎么办。只能凉拌了。我可以在内部对数组中重复元素去重下。但这无疑增加了LazyLoad.js的代码量,或者说我更愿意看到不要这么去写。当然我自己...
2011-08-11 06:51:43 101
JS/CSS module LazyLoad 之二
上一篇完成的JS的按需加载,这篇添加个新方法css,完成对CSS文件的加载。接口与JS相同,示例如下LazyLoad.css(['a.css', 'b.css', 'c.css'], function(){ console.log('css模块加载完毕');}); Firebug中效果如下, 上一篇对JS的加载实现是通过script元素,css则是通过li...
2011-08-10 09:33:43 99
JS/CSS module LazyLoad 之一
随着web app中JS越来越多,有时页面首次加载时有很多JS并没有用到。这时为了提高下载速度,提高页面渲染效率就需要让这部分暂时不用的JS延迟加载,即只在用到它们的时候再下载。这里会先实现一个最简单JS的惰性加载。后续几篇会逐步加强功能直至一个完整的JS/CSS模块加载库。这个系列里我不会实现队列,即各个JS文件是并行下载的,只有当多个JS全部下载后才执行回调。当然在第二个系列JS Queue ...
2011-08-09 14:21:29 78
IE6/7/8/Opera不支持script元素的onerror事件
如下<!DOCTYPE HTML><html> <head> <meta charset="utf-8"> <title>IE6/7/8/Opera不支持script元素的onerror事件</title> <script src="jquery-1.5.23.j
2011-08-09 14:16:33 79
ECMAScript 6入门(样章)
2014-09-23
Rework:每个程序员都应该读的一本书
2014-04-11
Mastering Web Application Development with AngularJS
2013-11-13
结构程序设计
2013-11-05
JavaScript异步编程:设计快速响应的网络应用
2013-06-06
JavaScript面向对象编程指南
2013-04-25
编写可维护的JavaScript
2013-04-25
UNIX编程艺术
2012-08-18
基于MVC的JavaScript Web富应用开发
2012-05-21
Essential JavaScript Design Patterns
2012-04-10
Getting Started with GEO.CouchDB and Node.js
2012-03-07
JavaScript Web Application
2012-02-26
JavaScript Patterns (JavaScript模式)
2011-12-30
HTML5 and CSS3: Develop with Tomorrow's Standards Today
2011-12-08
重构-改善既有代码的设计
2011-01-25
HTML5揭秘 英文版
2011-01-12
HTML 5用户指南 英文版
2011-01-12
jQuery 1.4.2 直观速查表
2010-09-10
HttpWatch.Professional.v5.2.16
2010-09-02
httpwatchpro-v4.0.54
2010-09-02
High.Performance.JavaScript
2010-05-13
JavaScript语言精粹
2010-04-26
Javascript语言精髓与编程实践
2010-04-19
我也能做CTO之程序员职业规划
2010-04-19
EMCA262 V5
2010-04-02
周爱民Qomo框架源码
2009-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人