converse js重新连接每个页面刷新

时间:2014-06-11 07:51:09

标签: javascript jquery

我正在与xmpp服务器使用converse js。我遇到了一个问题,即每当刷新页面时,聊天框都会断开连接并再次重新连接。我做了以下代码来修复它,它在火狐上运行良好,但在谷歌Chrome中它没有连接并继续显示为连接..

这是一个原始代码,可以在重新加载每个页面时重新连接聊天:

$(window).load(function(){

$("#jidy").val('<?php echo osc_logged_user_id();  ?>@xmpp');
$("#pass").val('<?php echo osc_logged_user_id(); ?>');
$(".login-submit").trigger("click");
$("#controlbox").hide();

});

这是经过修改的代码,适用于Firefox,但不适用于Google Chrome:

$(document).ready(function(){     
 require(['converse'], function (converse) {
 converse.initialize({
 });
});

$("#jidy").val('<?php echo osc_logged_user_id();  ?>@xmpp');
$("#pass").val('<?php echo osc_logged_user_id(); ?>');
$(".login-submit").trigger("click");
$("#controlbox").remove();
$('.conn-feedback').remove();
$("#toggle-controlbox").remove();



});

1 个答案:

答案 0 :(得分:0)

尝试

var xmppSubmit = setInterval(function()
 {
     if(jQuery(".login-submit").length > 0)
     {
         if(readCookie("xmpp_username") != null && readCookie("xmpp_password") != null)
         {
             jQuery('input[id="xmpp_username"]').val(readCookie("xmpp_username"));
             jQuery('input[id="xmpp_password"]').val(b64_to_utf8(readCookie("xmpp_password")));
             jQuery('input[class="login-submit"]').trigger('click');
         }
         clearInterval(xmppSubmit);
     }
 }, 700);

function utf8_to_b64( str ) {
  return window.btoa(unescape(encodeURIComponent( str )));
}

function b64_to_utf8( str ) {
  return decodeURIComponent(escape(window.atob( str )));
}

因为dom可能未加载。