我听说EXTJS是一个独立于浏览器的JavaScript库。 extjs如何使自己的浏览器独立?当我打开库类时,我没有看到任何代码,如:
if(IE)//这样做;
否则如果(FF)//做其他事情;
我的理解是否正确,extjs与浏览器无关?
答案 0 :(得分:5)
除了sha的观点,我知道ExtJS使用条件检查浏览器功能,并选择是否使用图像或css等特定视觉效果。
这样做的两个例子是它设法通过图像在IE6中的小部件上生成圆角,但是在支持它的任何东西中,它将在CSS中使用'border-radius'。
窗口小部件中的渐变也是如此,它们在旧浏览器中呈现为图像,但在支持的情况下使用CSS3渐变。
作为一项规则,从我看到的情况来看,ExtJS使用“功能检测”来确定您当前的浏览器支持和响应的内容。另一个例子是它的图表类,如果支持则呈现为SVG,或者在旧浏览器上呈现VML。
如果你想在内置动作中做任何特定的事情,你可以使用ExtJS中的一些类来执行特征检测。我想它会在幕后使用这些来决定渲染什么。
除此之外,应该注意的是,不时地,您可以注意到浏览器版本之间的奇怪差异,通常是令人讨厌的小视觉效果,例如滚动条存在于一个浏览器而不是另一个浏览器中,但这可能只是一个其他代码的症状,但我知道我们在IE8,IE9和Chrome测试时不时会看到一些小怪癖。
答案 1 :(得分:4)
它独立于浏览器。据我所知,他们对不同的浏览器有不同的CSS定义。如果你想看看JS代码是否有任何不同,你必须更深入地看 - 可能是在某些ExtJs核心文件中。
到目前为止,我们一直在IE,FF,Chrome,Safari,Mobile Safari等上使用它。