Heim > Web-Frontend > CSS-Tutorial > Warum zeigt jqGrid in Chrome eine horizontale Bildlaufleiste an und wie kann das Problem behoben werden?

Warum zeigt jqGrid in Chrome eine horizontale Bildlaufleiste an und wie kann das Problem behoben werden?

Mary-Kate Olsen
Freigeben: 2024-12-14 12:06:15
Original
645 Leute haben es durchsucht

Why Does jqGrid Display a Horizontal Scrollbar in Chrome, and How Can It Be Fixed?

jqGrid-Rendering-Problem in Chrome

In Chrome und seinen abgeleiteten Browsern tritt ein geringfügiges Rendering-Problem mit jqGrid auf, wo ein Teil des letzten Die Spalte erstreckt sich über die Gittergrenze hinaus. Aufgrund dieses Renderfehlers werden horizontale Bildlaufleisten angezeigt, was nicht das gewünschte Verhalten ist.

Ursache des Problems

Das Problem ergibt sich aus der Art und Weise, wie jqGrid die Breite des Rasters berechnet basierend darauf, ob der Benutzeragent Safari oder Chrome ist. Allerdings führt ein Fehler in Chrome-Versionen unter 19 zu einer ungenauen Berechnung, was zu einer fehlerhaften Darstellung führt.

Lösung

In der neuesten Version von jqGrid wurde ein Fix implementiert (4.3.3). Dieser Fix ändert die Logik, die verwendet wird, um zu bestimmen, ob das Raster in Chrome oder Safari gerendert wird. Die geänderte Zeile im jqGrid-Code lautet wie folgt:

isSafari = ($.browser.webkit || $.browser.safari) &&
    parseFloat($.browser.version)<536.5 ? true : false; // Chrome < version 19
Nach dem Login kopieren

Durch Ersetzen der ursprünglichen Zeile durch diese geänderte Zeile wird das Problem behoben und das Raster wird ohne horizontale Bildlaufleisten korrekt gerendert.

Alternativer Fix für ältere Chrome-Versionen

Für ältere Versionen von Chrome (20 oder niedriger), wo der Fix enthalten ist jqGrid 4.3.3 ist möglicherweise nicht verfügbar. Anstelle der oben genannten kann eine etwas andere Bedingung verwendet werden:

isSafari = ($.browser.webkit || $.browser.safari) &amp;&amp;
    parseFloat($.browser.version)<536.11 ? true : false; // Chrome < version 20
Nach dem Login kopieren

Zusammenfassend lässt sich sagen, dass das Rendering-Problem in jqGrid für Chrome durch einen Fehler in Chrome verursacht wird Rendering-Engine. Der in jqGrid 4.3.3 implementierte Fix behebt dieses Problem effektiv. Für ältere Chrome-Versionen kann eine alternative Bedingung verwendet werden, um das gleiche Ergebnis zu erzielen.

Das obige ist der detaillierte Inhalt vonWarum zeigt jqGrid in Chrome eine horizontale Bildlaufleiste an und wie kann das Problem behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage