以前为了给非IE扩展类似innerText等没有的方法、属性时,很多人这么写
if(typeof(HTMLElement) != "undefined" && !window.opera){
HTMLElement.prototype.__defineGetter__(...);
...
}
IE 9标准模式下就直接失效了,因为万恶的IE 9开始defined HTMLElement了,但是又不支持__defineGetter__,结果可想而知,解决方法当然也有,示例代码:
try {
stylesheet.__defineGetter__("rules",function(){
return this.cssRules
})
} catch (ex) {
Object.defineProperty(stylesheet, "rules", {
get: function() {
return this.cssRules
}
});
}