我想創建一個非常簡單的聊天系統,自動刷新並刷新用戶提交的新聊天消息。Javascript調用函數在函數不工作
我現在有兩個功能 - 一個用於提交新的消息,清除表單並刷新聊天(使用下一個函數)叫clearchat()
:
function clearchat() {
var frm = document.getElementById('chatform');
document.getElementById('fullmessage').value = document.getElementById('chatmsg').value;
frm.submit(); // form is being submitted to a hidden iframe.
frm.reset();
refreshchat();
}
,然後其他的是刷新聊天應該被稱爲當clearchat()
運行和使用的時間間隔也被稱爲每3秒:
function refreshchat() {
$('#qcwindow').load(document.URL + ' #qctext');
$('#chatwindow').load(document.URL + ' #chattext');
var chatwindow = document.getElementById('chatwindow');
var difference = chatwindow.scrollHeight - chatwindow.scrollTop;
if(difference < 750) {
chatwindow.scrollTop = chatwindow.scrollHeight;
}
}
此功能加載新的聊天信息到DIV,然後保持它滾動到div的底部,除非用戶有手動滾動離開div的底部。
這兩個函數都單獨工作。我遇到的問題是,當用戶提交新消息時,它確實提交表單並清除表單,但它確實不是刷新聊天。聊天仍然會自動刷新每3秒,但。但是我希望用戶的新消息能夠立即顯示出來。
我無法弄清楚爲什麼clearchat()
函數中的refreshchat()
函數沒有被調用。
任何幫助,將不勝感激。謝謝。
UPDATE:
我已經添加console_log("refrehsed")
到refreshchat()
功能,它被添加到日誌中,每次均通過擊球手動,也進入自動刷新,但僅股利居然就自動刷新更新。
如果從程序中刪除自動3秒刷新,會發生什麼情況?它是否正確刷新(當然,只有當你提交消息時)? – Katana314
問題是,ajax並沒有立即完成,如果你想讓用戶發送的消息立即彈出,你可能必須手動修改聊天框的html內容以包含消息,以便它看起來像它已經出來即刻。 – chris97ong
@ Katana314 - 嗯..當我刪除自動3秒的時間間隔,它會自動加載信息約75%的時間,但不是每一次。 – Jetteh22