[英]calling bootstrap modal show in ajax callback (safari)
客户端向Rails控制器心跳发出请求。 心跳响应成功200OK或错误(未经授权)401。客户端每500毫秒发送一次此请求。
我想在ajax请求期间发生错误401时显示引导模态。 所以在我里面放了那个modal('show')但bootstrap modal被触发了。
这是在文档加载时添加引导模式的代码。
$(function(){
$('body').append('<div id="confirm-logout-modal" class="modal hide fade" style="display: none;"> \
<div class="modal-header"> \
<h3 class="modal-title">Logout</h3> \
</div> \
<div class="modal-body"> \
<p> \
<span class="modal-main-message">You have been logged out</span> \
</p> \
</div> \
<div class="modal-footer"> \
<button id="btn-confirm" class="btn btn-success">Okay</button> \
</div> \
</div> \
');
$('#btn-confirm').click(function(){
$('#confirm-logout-modal').modal('hide');
window.location.reload();
});
});
这是显示对Ajax错误回调进行引导的代码
function check_heartbeat(){
$.ajax({
type: 'GET',
url: '/heartbeat',
success: function(data){
void(0);
},
error: function(response) {
if(response.status == 401){
clearInterval(heartbeat_id);
$('#confirm-logout-modal').modal('show');;
}
}
});
};
但是这里的问题是,当从ajax错误回调调用时,它没有显示模式弹出窗口。
我已经检查了谷歌浏览器没有错误在那里。 我也尝试调用modal('show')控制台,它确实显示弹出窗口。 我也尝试在文档加载时调用弹出窗口,然后又进行模式弹出窗口。
但是仅当从ajax错误回调中调用时,它才会产生问题
更多发现:
1.仅当在生产模式下启动Rails服务器时,才会发生此问题
2.仅显示背景,而不显示模式。 单击背景上的任意位置后,将显示模态。 那时背景关闭,并显示模式弹出窗口。
3.此问题仅在野生动物园中发生。
4.仅当野生动物园选项卡不清晰时,才会出现此问题。 如果我在同一选项卡上,则会显示弹出窗口。 但是如果让我说第二个选项卡,并且弹出式窗口显示在第一个选项卡上。 如果我切换回第一个标签,那么我只会看到背景幕。
这是JSFiddle代码http://jsfiddle.net/5y7725v5/取消该代码并快速切换到其他选项卡。 等待一段时间,然后切换回原始标签。 看不到弹出窗口。 现在运行代码,并停留在相同的选项卡上! 显示弹出窗口
仅在状态代码为401时显示,表示未经授权的访问
尝试检查状态码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.