Chrome 中的 jqGrid:最后一列过大问题
jqGrid 是一个用于数据显示的 JavaScript 库,在与 Chrome 一起使用时存在特殊的渲染问题或镀铬框架。网格的最后一列延伸到边界之外,强制出现水平滚动条。无论网格大小如何,都会出现这种扭曲。
诊断和故障排除
此问题的根本原因在于 jqGrid 的宽度计算与 Chrome 内部设置不匹配。要解决此问题,需要修改 jqGrid 代码。
解决方案更新
修复涉及更新 jqGrid 代码的以下行:
isSafari = $.browser.webkit || $.browser.safari ? true : false;
至:
isSafari = ($.browser.webkit || $.browser.safari) && parseFloat($.browser.version)<536.5 ? true : false; // Chrome < version 19
已更新代码
以下是 isSafari 检查的更新代码:
if (isSafari) { chromeVersion = parseFloat($.browser.version); // Later Chrome versions using WebKit will fall below the threshold if (chromeVersion<536.11) { // Chrome 20 uses 536.11 (Change as browsers change) isSafari = true; // Only early Chrome requires the correction } else { isSafari = false; } }
测试修复
跨各种浏览器(IE9、 IE8、Chrome 18-23、Safari、Firefox、Opera)确认更新的代码解决了该问题。网格现在可以正确渲染,最后一列不会出现过大的宽度。
信用和增强
最初的修复是由 jqGrid 的开发者 trirand 建议的。随后,代码得到了改进,包括与使用更高 WebKit 版本的更高版本 Chrome 的兼容性。
通过更新的代码,用户可以在 Chrome 和 Chrome Frame 中无缝使用 jqGrid,而不会遇到有问题的列宽度问题。
以上是为什么我的 jqGrid 的最后一列超出了 Chrome 中的网格,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!