我正在制作这样的聊天程序:http://www.webengine.co.kr/wechat?l=en(韩国网站),我有像标题这样的问题。 (有时会出现此问题。如果要对此进行测试,请多次刷新页面。)
我认为这个问题是我的ajax脚本
function wechat(id, chatroom_srl, last_chatline_srl, key, nick_name){
this.id = id;
this.chatroom_srl = chatroom_srl;
this.last_chatline_srl = last_chatline_srl;
this.key = key;
this.nick_name = nick_name;
this.wechat = $("#"+this.id);
var oWechat = this.wechat;
function exec_json_nomsg(a,b,c){
if("undefined" == typeof b) b = {};
a = a.split(".");
if(2 == a.length){
$.extend(b, {module:a[0],act:a[1]});
if("undefined" != typeof xeVid) $.extend(b, {vid:xeVid});
$.ajax({
type:"POST",
dataType:"json",
url:request_uri,
contentType:"application/json",
data:$.param(b),
success:function(a){
if($.isFunction(c)) c(a);
}
});
}
}
function procChatLines(data){
for(i=0;i<data.chatline_list.length;i++){
appendLine(data.chatline_list[i].nick_name, data.chatline_list[i].content, data.chatline_list[i].key);
wechat.last_chatline_srl = data.chatline_list[i].chatline_srl;
}
wechat.timer = setTimeout(loadChatContents, 100);
}
function loadChatContents(){
exec_json_nomsg("chat.loadChatContents", {chatroom_srl:wechat.chatroom_srl, last_chatline_srl:wechat.last_chatline_srl, key:wechat.key}, procChatLines);
clearTimeout(wechat.timer);
}
function appendLine(nick_name, content, key){
var lineObj = $("<div class=\"chatLine\"></div>");
if(wechat.key == key) lineObj.addClass("chatMe");
lineObj.html("<span class=\"chatNickBold\">"+nick_name+" : </span>"+content);
oWechat.find(".chatContentHeight").append(lineObj);
scrollDown();
}
function scrollDown(){
var o = oWechat.find(".chatContent");
o.stop().animate({scrollTop:o.find(">.chatContentHeight").height()-o.height()}, 300, "easeInOutQuart");
}
$(window).load(function(){
scrollDown();
});
oWechat.find(".wechatInput").keydown(function(e){
if(e.keyCode == 13){
if($(this).val().trim() != ""){
exec_json_nomsg("chat.procChatInsertChatLine",{"chatroom_srl":wechat.chatroom_srl,"content":$(this).val()});
appendLine(wechat.nick_name, $(this).val(), wechat.key);
$(this).val("");
}
}
});
wechat.timer = setTimeout(loadChatContents, 100);
}
new wechat("wechat1", 1, [last_chatline_srl(PHP give this)], "[User Hidden Key(PHP give this)]", "[User Nick Name]");
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
看起来你的语法有点不对劲。你错过了一个额外的支架。这应该是它的样子。
$.ajax({
type:"POST",
dataType:"json",
url:request_uri,
contentType:"application/json",
data:postData,
success:function(b){
if(0 < b.error){
//we get to here if b.error is < 0.
alert(b.message);
}
else{
call_back_function();
}
}
});
答案 1 :(得分:0)
您的问题不在您发送的脚本中,在您指向的网站上使用srchat.js文件行648和649上的小部件:
window.onbeforeunload = function(){if(!chtisbk && chtunload == 'Y') {if(dallar('cht_gout').value == '0'){if(cht_go('out')){dallar('cht_gout').value = '9';if(navigator.appName == 'Opera') alert('접속을 종료합니다');}}}}
window.onunload = function(){window.onbeforeunload();}
这两行负责该消息。
你也正在使用这个libary common / js / xe.min.js 在启动ajax调用时,它将显示该消息,直到调用返回一个值。如果你想修改你需要该文件的来源。