习惯了 Ext.getDoc().getViewSize() 以及 Ext.getDoc().getScroll() 获取浏览器窗口的一些信息,而这次用了下 Ext.getDoc().isScrollable() 发现并不是预期的结果 :可以查看浏览器是否有滚动条,看了下源码发现确实这个方法没有像前两个方法一样对document特殊处理,api 没有保持一致性,应该是不小心疏忽了
isScrollable : function(){
var dom = this.dom;
return dom.scrollHeight > dom.clientHeight || dom.scrollWidth > dom.clientWidth;
},
调整一下:
isScrollable : function(){
var d = this.dom, doc = document;
if(d == doc || d == doc.body){
var scrollHeight=Ext.lib.Dom.getDocumentHeight();
var scrollWidth=Ext.lib.Dom.getDocumentWidth();
var clientHeight=Ext.lib.Dom.getViewportHeight();
var clientWidth=Ext.lib.Dom.getViewportWidth();
return scrollHeight > clientHeight || scrollWidth > clientWidth;
}
return d.scrollHeight > d.clientHeight || d.scrollWidth > d.clientWidth;
},
本文探讨了ExtJS中使用Ext.getDoc().isScrollable()方法检测浏览器滚动条的问题,并提出了改进方案,确保API的一致性和准确性。
246

被折叠的 条评论
为什么被折叠?



