jqGrid dans Chrome : démystifier les problèmes de barre de défilement horizontale
Les utilisateurs rencontrant des barres de défilement horizontales dans leur implémentation de jqGrid dans Chrome peuvent être perplexes face à un problème inattendu affectant le rendu de leurs grilles. Pour résoudre ce problème, nous allons explorer la cause sous-jacente et proposer une solution pratique.
Le coupable réside dans une inadéquation entre les calculs de largeur de jqGrid et le comportement de Chrome. Les versions de Chrome antérieures à 19 présentaient ce problème en raison d'écarts dans le calcul des largeurs d'éléments à l'aide de JavaScript et CSS.
Correction du défaut
Pour résoudre ce problème, une mise à jour de jqGrid le code était nécessaire. L'extrait de code ci-dessous illustre la modification :
isSafari = ($.browser.webkit || $.browser.safari) && parseFloat($.browser.version) < 536.5 ? true : false; // Chrome < version 19
Cette modification vérifie si Chrome est inférieur à la version 19 et ajuste le calcul des largeurs des éléments en conséquence.
Solution généralisée
Pour éviter une dépendance future aux versions du navigateur et aux versions spécifiques du moteur de rendu, un correctif plus complet est recommandé. Cela implique d'utiliser les méthodes $.width et $.outerWidth de jQuery en conjonction avec les calculs internes de jqGrid.
Démo et résultats
Le test du correctif sur différents navigateurs a donné des résultats positifs. Les barres de défilement horizontales ont disparu et la grille s'est rendue comme prévu :
[Image du rendu de la grille corrigé sans barres de défilement horizontales]
Version jqGrid mise à jour
La le problème a été résolu dans la version 4.3.3 de jqGrid, qui intègre la méthode de calcul de largeur révisée. Il est conseillé aux utilisateurs de passer à la dernière version pour une fonctionnalité de grille optimale.
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!