2

JavaScript または jQuery を使用して、DOM が表示される前にページの本文を変更しようとしています。

私はそれをかなりうまくやることができます:

jQuery(document).ready(function() {          

   jQuery('body').load('?variation-id='+dynamic_id_number, function() {});

});

しかし問題は、ページが新しい本文コンテンツを表示する前に、古い本文コンテンツを一瞬レンダリングすることです。

DOM がいつロードされたかを検出し、印刷する前に変更する方法はありますか?

4

5 に答える 5

4

を待っている場合はdocument.onready、dom の準備が整うまで待機します ;)。それを使用しないでください。それ (スクリプト) を head タグに埋め込むだけです。

于 2013-05-01T21:08:08.560 に答える
1

CSS を使用してBODY、要素のコンテンツまたは要素自体を非表示にすることができます。BODY

HTML.hidden > BODY {
    display: none;
}

hiddenHEADclass をセクションのすぐ内側に追加する必要があります(<body>開始タグはまだブラウザで検出されていません):

$(document.documentElement).addClass('hidden');

そしてそれをready()ハンドラーで再表示します:

$(document).ready(function() {
    $(document.documentElement).removeClass('hidden');
});

要素を静的に非表示BODYにすることは、JS の実行が無効になっている場合には良くありません。

于 2013-05-01T21:24:44.547 に答える
0

を使用する代わりに$(document).ready(..)、できれば参照される要素が定義された後に、スクリプトを直接ページにドロップします。例:

<div id="foo">Bar</div>
<script>$("#foo").html("Loaded!");</script>

きれいではありませんが、仕事はします。

于 2013-05-01T21:28:25.260 に答える