我正在使用HTML5,CSS3,jQuery Mobile,jQuery UI,ASP.NET,C#和一些jQuery插件为调查创建这个简单的移动网页。其中一个要求是显示弹出/对话框(javascript警报或jQuery移动对话框,如果是jQuery UI对话框,则更好),只要设备没有互联网连接(特别是Android),就会通知用户。目前我有这段代码:
<link rel="stylesheet" href="../Scripts/jqueryui/jquery-ui.css" type="text/css" media="all" />
<link rel="stylesheet" href="../Scripts/jquery.mobile-1.1.0.css" />
<script src="../Scripts/jquery-1.7.1.js" type="text/javascript"></script>
<script src="../Scripts/jquery.mobile-1.1.0.js" type="text/javascript"></script>
<script src="../Scripts/jqueryui/jquery.min.js" type="text/javascript"></script>
<script src="../Scripts/jqueryui/jquery-ui.min.js" type="text/javascript"></script>
<script src="../Scripts/jquery.validate.js" type="text/javascript"></script>
<script type="text/javascript">
var online = window.navigator.onLine;
if (!online) {
alert('Please check your internet connection and try again.');
}
function checkInternet() {
var online = window.navigator.onLine;
if (!online) {
alert('Please check your internet connection and try again.');
}
}
</script>
然后我将JavaScript函数放在表单的onsubmit事件上:
<form id="frmSurvey" runat="server" class="validate" onsubmit="checkInternet()">
当我在台式机/ PC浏览器上查看但它根本无法在移动设备上运行时,它正在工作。 jQuery Mobile错误加载页面。
因为,这不是我调整jQuery Mobile文件的要求,注释了错误加载页面消息部分,它不再出现了。我已经尝试过谷歌搜索任何相关主题但没有找到任何主题。
我真的很难让这成为可能。请帮帮我们!
提前致谢!
答案 0 :(得分:10)
很少有解决方案可满足您的需求。
此解决方案需要jQuery,因为您使用的是jQuery Mobile,它将作为魅力。
$.ajaxSetup({
timeout: 1, // Microseconds, for the laughs. Guaranteed timeout.
error: function(request, status, maybe_an_exception_object) {
if(status == 'timeout')
alert("Internet connection is down!");
}
});
有关详细信息,请查看有关 ajaxSetup 的官方文档。
这个有点棘手,因为它取决于HTML5浏览器的实现。
基本上你需要检查这个值是真还是假:
window.navigator.onLine - 如果用户离线,则 false 。
工作示例:http://jsfiddle.net/Gajotres/VXWGG/1/
经过测试:
Windows Firefox
Windows Google Chrome
Windows IE9和IE10
Android 4.1.1 Chrome
iPad 3 Safari
iPad3 Chrome