jquery append in chrome
jquery append in chrome
我对jquery的append()函数i chrome有问题。
我正在处理浏览器聊天,并且正在从服务器检索带有长轮询的聊天消息。当客户端收到新消息时,该消息将追加到特定的聊天实例div。
在追加之后,我想立即滚动设置scrollTop,即chat_session_text的"滚动到底部"。这在大多数浏览器中都运行良好,但在 chrome 中则不然。经过一些研究,append() 在 chrome 中似乎不是同步的?
如果我在我的代码中记录 scrollHeight,它会显示错误的div 高度。 但是,如果我将此代码粘贴到 chrome 控制台中,它的高度是正确的!所以,我怀疑 DOM 还没有准备好附加的div。
这是我的代码:
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 });
有谁知道如何解决这个问题? 也许 som 在 DOM 准备就绪后对 append() 函数进行回调?
谢谢。
似乎scrollHeight
在 Chome 上没有得到很好的支持(例如 http://code.google.com/p/chromium/issues/detail?id=34224),并且我发现 append() 是异步的说法不受支持。也许控制台打开的事实会改变整个页面的行为(不同的高度)?
我建议你使用jQuery提供的函数,而不是直接访问属性,http://api.jquery.com/height/getter和 http://api.jquery.com/scrollTop/setter。
相关文章:
- window.opener not working in chrome & IE
- cmd+c in keyUp event on Chrome OSX (Mac)
- requestAnimFrame 60FPS in Chrome, 1FPS in FF
- history.pushState in Chrome make favicon request
- jquery append in chrome
- javascript self.close() in chrome
- XMLHTTPRequest resulting in Aw, snap in chrome
- Canvas Bug in Chrome
- ERR_NAME_NOT_RESOLVED in Chrome
- document.getElementById().value return undefined in chrome
- window.find() in Firefox vs Chrome
- event.dataTransfer.dropEffect in chrome
- net::ERR CONTENT LENGTH MISMATCH in Chrome with Jboss WildFl
- window.open as tabs not pop ups in Chrome
- Firefox Bookmarklet in Chrome
- Ruby Time to JavaScript Date in Chrome/Firefox
- Using onafterprint in Chrome & Safari
- Chrome Crashing with whitespaces in Textarea on using onClic
- Weird behavior in chrome's javascript .width property
- document.getElementById in chrome