ホームページ >ウェブフロントエンド >CSSチュートリアル >jqGrid の最後の列が Chrome のグリッドを超えて拡張されるのはなぜですか?それを修正するにはどうすればよいですか?

jqGrid の最後の列が Chrome のグリッドを超えて拡張されるのはなぜですか?それを修正するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-25 21:55:13788ブラウズ

Why Does My jqGrid's Last Column Extend Beyond the Grid in Chrome, and How Can I Fix It?

Chrome の jqGrid: 最後の列のサイズが大きすぎる問題

データ表示用の JavaScript ライブラリである jqGrid を Chrome で使用すると、特有のレンダリングの問題が発生しますまたはクロームフレーム。グリッドの最後の列が境界を越えて伸びているため、水平スクロールバーが表示されます。この歪みは、グリッドのサイズに関係なく発生します。

診断とトラブルシューティング

この問題の根本原因は、jqGrid の幅計算と Chrome の内部設定の不一致にあります。 。これを解決するには、jqGrid コードを変更する必要があります。

ソリューションの更新

修正には、jqGrid の次の行を更新することが含まれます。コード:

isSafari = $.browser.webkit || $.browser.safari ? true : false;

to:

isSafari = ($.browser.webkit || $.browser.safari) &amp;&amp; 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。