jquery の append() 関数 i chrome に問題があります。
私はブラウザチャットに取り組んでおり、サーバーからロングポーリングでチャットメッセージを取得しています。クライアントが新しいメッセージを受け取ると、メッセージは特定のチャット インスタンス div に追加されます。
追加の直後に、chat_session_text の scrollTop、つまり「一番下までスクロール」を設定してスクロールしたいと考えています。これはほとんどのブラウザーで正常に機能しますが、chrome では機能しません。いくつかの調査の後、append() はクロムで同期していないように見えますか?
コードで scrollHeight をログに記録すると、div の間違った高さが表示されます。しかし、このコードをクロムコンソールに貼り付けると、正しい高さになります! したがって、追加された div で DOM の準備ができていないと思われます。
これが私のコードです:
var strHtmlToAppend = $('<div class="chat_message"><img class="imgThumb2" style="float:left;" src="UserImage.aspx?alias=' + fromUserID + '" border="0" alt="">' + strMsg + '</div>');
$('#' + elm + ' .chat_session_text').append(strHtmlToAppend);
console.log($('#' + elm + ' .chat_session_text').prop("scrollHeight"));
$('#' + elm + ' .chat_session_text').prop({ scrollTop: $('#' + elm + ' .chat_session_text')[0].scrollHeight });
これを解決する方法を知っている人はいますか?DOM の準備ができたら、append() 関数のコールバックのようなものでしょうか?
ありがとう。