【发布时间】:2012-05-05 16:46:06
【问题描述】:
我听说EXTJS 是一个独立于浏览器的javascript 库。 extjs 如何让自己独立于浏览器?当我打开库类时,我看不到任何类似的代码:
如果(IE)//这样做;
else if (FF) // 做别的事;
我对 extjs 独立于浏览器的理解正确吗?
【问题讨论】:
标签: extjs
我听说EXTJS 是一个独立于浏览器的javascript 库。 extjs 如何让自己独立于浏览器?当我打开库类时,我看不到任何类似的代码:
如果(IE)//这样做;
else if (FF) // 做别的事;
我对 extjs 独立于浏览器的理解正确吗?
【问题讨论】:
标签: extjs
除了 sha 的观点,我知道 ExtJS 对浏览器功能使用条件检查,并选择是否使用图像或 css 之类的东西来获得特定的视觉效果。
这方面的两个例子是它设法通过图像在 IE6 中的小部件上生成圆角,但在任何支持它的东西中,它都会在 CSS 中使用“border-radius”。
小部件中的渐变也是如此,它在旧浏览器中呈现为图像,但在支持的情况下使用 CSS3 渐变。
作为一项规则,据我所知,ExtJS 使用“功能检测”来确定您当前的浏览器支持什么并做出适当的响应。另一个例子是它的图表类,如果支持,它会呈现为 SVG,或者在旧浏览器上呈现为 VML。
ExtJS 中有一些类可以用来执行特征检测,如果您希望在内置操作之外执行任何特定操作。我想它会在后台使用这些来决定渲染什么。
除此之外,应该注意的是,您不时会注意到浏览器版本之间的奇怪差异,通常是令人讨厌的小视觉效果,例如滚动条出现在一个浏览器中而另一个浏览器中没有,但这可能只是一个其他代码的症状,但我知道在跨 IE8、IE9 和 Chrome 进行测试时,我们不时会看到一些小怪癖。
【讨论】:
它独立于浏览器。据我所知,他们对不同的浏览器有一些不同的 CSS 定义。如果您想查看 JS 代码是否有任何差异,您将不得不更深入地查看 - 可能在某些 ExtJs 核心文件中。
到目前为止,我们一直在 IE、FF、Chrome、Safari、Mobile Safari 等上使用它。
【讨论】: