我目前正在使用Tom Riley的Jquery插件在我的应用程序中检测Internet连接,它在Internet Explorer中运行良好,但在Google Chrome中实现时却没有响应。
任何人都可以建议一个更好的检测互联网连接的插件,它在Google Chrome浏览器中运行完美(所有浏览器)
答案 0 :(得分:10)
你不需要插件,只需:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
if (! window.jQuery) {
alert('No internet Connection !!');
}
else {
// internet connected
}
</script>
之所以上述原因是因为jQuery lib是从谷歌CDN读取的,需要互联网连接,如果页面无法读取,则表示不存在互联网连接。
您可以执行以下操作:
function checkConnection() {
var connected = true;
var img = document.createElement('img');
img.src = "path to remoate image on your server";
img.onerror = function() { connected = false; }
return connected;
}
您可以随时使用它:
if (checkConnection()) {
// connected
}
您可以定期/自动检查它:
setInterval(function(){
var isConnected = checkConnection(); // checkConnection() comes from above code
if (isConnected) {
alert('Connected');
}
else {
alert('Not Connected');
}
}, 10000); // 10000 = 10 seconds, check for connection every 10 seconds
其他有用的链接:
答案 1 :(得分:2)
checkNet插件(http://tomriley.net/blog/archives/111)适用于所有浏览器,包括Chrome。它不依赖于查询google.com(因为google在来自国家/地区被封锁,并且各大洲之间的连接可能不可靠!)
如果没有显示错误消息,通常是因为您仍然在本地服务器上 - 它将在Internet上运行。
此外,看看你正在使用它是非常酷的。如果您想分享,请给我一个链接。
答案 2 :(得分:0)
无需下载任何文件或图像即可通过简单的代码检查一下。
点击下面的“运行代码段”按钮,然后查看其运行情况。
function checkInternetConnection(){
var status = navigator.onLine;
if (status) {
console.log('Internet Available !!');
} else {
console.log('No internet Available !!');
}
setTimeout(function() {
checkInternetConnection();
}, 1000);
}
checkInternetConnection();
编辑-更简单的无功能方式
setInterval(function(){
var status = navigator.onLine;
if (status) {
console.log('Internet Available !!');
} else {
console.log('No internet Available !!');
}
}, 1000); // 1000 = 1 seconds, check for connection after every 1 seconds