0

複数の言語をサポートできるようにするために必要な小さな HTML5 ページを作成しました。ページで JSON ファイルをメモリ (HEAD 内) にロードし、jQuery コマンドを実行して要素のテキストを必要に応じて変更することで、言語制御を実装しました。

変更がポスト レンダリングと呼ばれているため (ドキュメントの準備が整っている場合)、言語が変更されるときにわずかなフラッシュが発生することを除いて、すべて正常に機能します。

ページがレンダリングされる前に、DOM が利用可能になった後に呼び出されるイベントはありますか? そうでない場合、実装を変更するための提案はありますか。

乾杯..

アップデート

他のサイトでこれに対するいくつかの回答を見つけました。一般的なコンセンサスは、ほとんどのブラウザーが解析時にレンダリングするため、これは不可能であると思われます。推奨される回避策は、スクリプトで本文を非表示 (display:'none') にしてから、ドキュメントの準備完了関数での更新後に表示 (display:'') することです。100%完璧ではありませんが、私にとってはうまくいきます。

4

2 に答える 2

1

FOUC (Flash Of Unstyled Content) に問題があるようです。

それを回避するにはいくつかの方法があります。これを体に追加できます:

<body class="fouc">

次に、この CSS を用意します。

.fouc{display:none;}

最後に、このスクリプト:

$(function(){
      $('.fouc').show();
});

これは、最初にページを非表示にすることで機能し、準備ができたら、javascript で有効にします。操作が呼び出しの前に行われることを確認する必要がある場合があり$('.fouc').show();ます。

于 2013-08-13T12:20:42.140 に答える