Problème de rendu jqGrid dans Chrome
Dans Chrome et ses navigateurs dérivés, un problème de rendu mineur survient avec jqGrid, où une partie du dernier La colonne s'étend au-delà des limites de la grille. Des barres de défilement horizontales apparaissent à la suite de cette erreur de rendu, ce qui n'est pas le comportement souhaité.
Cause du problème
Le problème vient de la façon dont jqGrid calcule la largeur de la grille selon que l'agent utilisateur est Safari ou Chrome. Cependant, un bug dans les versions de Chrome inférieures à 19 provoque un calcul inexact, entraînant un rendu incorrect.
Solution
Un correctif a été implémenté dans la dernière version de jqGrid (4.3.3). Ce correctif modifie la logique utilisée pour déterminer si la grille est rendue dans Chrome ou Safari. La ligne modifiée dans le code jqGrid est la suivante :
isSafari = ($.browser.webkit || $.browser.safari) && parseFloat($.browser.version)<536.5 ? true : false; // Chrome < version 19
En remplaçant la ligne d'origine par celle modifiée, le problème est résolu et la grille est rendue correctement sans aucune barre de défilement horizontale.
Correction alternative pour les anciennes versions de Chrome
Pour les anciennes versions de Chrome (20 ou inférieure), où le correctif se trouve dans jqGrid 4.3.3 peut ne pas être disponible, une condition légèrement différente peut être utilisée à la place de celle mentionnée ci-dessus :
isSafari = ($.browser.webkit || $.browser.safari) && parseFloat($.browser.version)<536.11 ? true : false; // Chrome < version 20
En conclusion, le problème de rendu dans jqGrid pour Chrome est causé par une erreur dans le fichier Chrome. moteur de rendu. Le correctif implémenté dans jqGrid 4.3.3 résout ce problème efficacement. Pour les anciennes versions de Chrome, une condition alternative peut être utilisée pour obtenir le même résultat.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!