Chrome 中的 jqGrid 渲染问题
在 Chrome 及其衍生浏览器中,jqGrid 会出现一个较小的渲染问题,其中最后的一部分列延伸到网格边界之外。由于此渲染错误,出现水平滚动条,这不是所需的行为。
问题原因
问题源于 jqGrid 计算网格宽度的方式基于用户代理是 Safari 还是 Chrome。但 Chrome 19 以下版本存在 bug,导致计算不准确,导致渲染不正确。
解决方案
已在最新版本的 jqGrid 中实现修复(4.3.3)。此修复修改了用于确定网格是在 Chrome 还是 Safari 中呈现的逻辑。 jqGrid代码中修改后的行如下:
isSafari = ($.browser.webkit || $.browser.safari) && parseFloat($.browser.version)<536.5 ? true : false; // Chrome < version 19
通过用此修改后的行替换原始行,问题得到解决,并且网格正确渲染,没有任何水平滚动条。
旧版 Chrome 的替代修复
对于旧版 Chrome(20 或以下),如果 jqGrid 4.3.3 中的修复可能不可用,则可以使用稍微不同的条件来代替上述条件:
isSafari = ($.browser.webkit || $.browser.safari) && parseFloat($.browser.version)<536.11 ? true : false; // Chrome < version 20
总而言之,jqGrid for Chrome 中的渲染问题是由以下原因引起的Chrome 渲染引擎中出现错误。 jqGrid 4.3.3 中实现的修复有效解决了这个问题。对于较旧的 Chrome 版本,可以使用替代条件来实现相同的结果。
以上是为什么 jqGrid 在 Chrome 中显示水平滚动条,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!