我正在与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();
});
答案 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
可能未加载。