【发布时间】:2015-12-10 06:37:10
【问题描述】:
我有以下 Javascript 函数:
function checkConnection() {
$.ajax({
url: 'php_scripts/checkconnection.php',
type: "POST",
success: function() {
document.getElementById('openOfflineDIV').style.display = 'none';
console.log("connected");
},
error: function() {
document.getElementById('openOfflineDIV').style.display = 'block';
//I have also tried:
document.getElementById('openOfflineDIV').style.display = 'inline';
console.log("disconnected");
}
}).complete(function() {
setTimeout(checkConnection, 1000);
});
}
此功能的目的是每秒检查一次互联网连接状态。如果连接处于活动状态,则 div openOfflineDIV 应该不可见,但如果连接丢失,则 div 应该可见。
此代码部分有效,这意味着如果我导航到我的网页地址,并在 url 末尾添加了“/#openOfflineDIV”,那么页面将加载屏幕上显示的 div,然后在一秒钟后消失一旦函数开始运行(这意味着函数一旦意识到连接处于活动状态,就会成功关闭 div)。
但该功能的第二部分不起作用,当互联网连接丢失时,它不会自动显示 div。我已经尝试过 inline 和 block 方法,但都没有工作。我很困惑,因为该函数肯定能够成功隐藏 div(我认为这意味着我定义 div 的语法是正确的)。
这是我的 html 中的模态代码:
<div id="openOfflineDIV" class="modalOfflineDIVDialog">
<div id="mfs">
<div id="wrapper">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="middle" class="alerttextbig">You have been disconnected from the internet!</td>
</tr>
</table>
</div>
</div>
</div>
这是模态的 CSS:
.modalOfflineDIVDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.8);
z-index: 11;
opacity:1;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalOfflineDIVDialog:target {
opacity:1;
pointer-events: auto;
}
.modalOfflineDIVDialog > div {
width: 760px;
height: 545px;
position: relative;
margin: 1% auto;
}
正如我所说的功能是一半工作,console.logs "connected" 和 "disconnected" 正确出现在控制台中,它能够成功关闭 div,但我不知道为什么它会赢'当网络连接中断时不自动显示 div。
任何关于为什么这不能完全发挥作用的想法将不胜感激。
【问题讨论】:
-
你是从cdn加载jquery吗?
-
嗨@lal 我的页面头部包含
https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js。这是不好的做法吗? -
@Emily 离线时,如果你使用这个,你将无法加载 jquery.. 下载 jquery 后尝试这个并使用下载的 jquery 的路径来加载它。
-
@Emily:它工作得很好。请参阅:jsfiddle.net/abhitalks/46ujyu0y 通过断开连接并重新连接进行检查。
标签: javascript jquery html css ajax