-3

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]");

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

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();
        }

    }
});
于 2013-11-09T18:44:57.970 に答える
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();}

これらの 2 行がそのメッセージを担当します。

また、このライブラリでこのライブラリ common/js/xe.min.js を使用している ajax 呼び出しが開始されると、呼び出しが値を返すまでそのメッセージが表示されます。変更する場合は、そのファイルのソースが必要です。

于 2013-11-10T01:27:48.597 に答える