IE模块也是 Zepto 的必备模块之一,这个模块的代码量很少,主要改写getComputedStyle
。
读 Zepto 源码系列文章已经放到了github上,欢迎star: reading-zepto
本文阅读的源码为 zepto1.2.0
;(function(){
// getComputedStyle shouldn't freak out when called
// without a valid element as argument
try {
getComputedStyle(undefined)
} catch(e) {
var nativeGetComputedStyle = getComputedStyle
window.getComputedStyle = function(element, pseudoElement){
try {
return nativeGetComputedStyle(element, pseudoElement)
} catch(e) {
return null
}
}
}
})()
getComputedStyle
的第一个参数不为 element
时,有些浏览器会报错,zepto
可能希望 getComputedStyle
在所有浏览器上的行为表现一致,不希望 getComputedStyle
因为参数错误而中断后续代码的执行,所以改写了 getComputedStyle
方法。
这是一个立即执行函数,在加载完毕后,立即检测 getComputedStyle
在浏览器中是否有参数容错的行为,将执行代码放到 try ... catch
中,如果报错,则改写 getComputedStyle
函数。
改写后的 getComputedStyle
函数体中,再有一个 try ... catch
,如果执行错误,则返回 null
。这样,getComputedStyle
就不会因为参数错误而报错,中止后续代码的执行了。
- 读Zepto源码之代码结构
- 读 Zepto 源码之内部方法
- 读Zepto源码之工具函数
- 读Zepto源码之神奇的$
- 读Zepto源码之集合操作
- 读Zepto源码之集合元素查找
- 读Zepto源码之操作DOM
- 读Zepto源码之样式操作
- 读Zepto源码之属性操作
- 读Zepto源码之Event模块
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面