I am creating this simple mobile web page for a survey using HTML5, CSS3, jQuery Mobile, jQuery UI, ASP.NET, C# and some jQuery Plugins. One of the requirements is to show a pop-up/ dialog (either javascript alert or a jQuery mobile dialog or much better if it's a jQuery UI dialog) that will notify user whenever there is no internet connection the device (specifically Android). Currently I have this code:
<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>
then I put the JavaScript function on the form's onsubmit event:
<form id="frmSurvey" runat="server" class="validate" onsubmit="checkInternet()">
It's working when I view it on a desktop/ PC browser but doesn't work on mobile at all. The jQuery Mobile error loading page.
Since, this ain't the requirment I tweaked the jQuery Mobile file mented out the error loading page message part and it doesn't appear anymore. I've tried Google-ing a lot searching for any related topics but not found any.
I'm really having a hard time making this possible. Please help me guys!
Thanks in advance!
I am creating this simple mobile web page for a survey using HTML5, CSS3, jQuery Mobile, jQuery UI, ASP.NET, C# and some jQuery Plugins. One of the requirements is to show a pop-up/ dialog (either javascript alert or a jQuery mobile dialog or much better if it's a jQuery UI dialog) that will notify user whenever there is no internet connection the device (specifically Android). Currently I have this code:
<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>
then I put the JavaScript function on the form's onsubmit event:
<form id="frmSurvey" runat="server" class="validate" onsubmit="checkInternet()">
It's working when I view it on a desktop/ PC browser but doesn't work on mobile at all. The jQuery Mobile error loading page.
Since, this ain't the requirment I tweaked the jQuery Mobile file mented out the error loading page message part and it doesn't appear anymore. I've tried Google-ing a lot searching for any related topics but not found any.
I'm really having a hard time making this possible. Please help me guys!
Thanks in advance!
Share Improve this question edited May 20, 2013 at 16:18 Gajotres 57.3k16 gold badges105 silver badges131 bronze badges asked May 3, 2013 at 18:56 joecoderjoecoder 931 gold badge1 silver badge9 bronze badges 2- How are you testing this on a mobile device (is it hosted somewhere, copied to your device?) – tymeJV Commented May 3, 2013 at 19:13
- Actually, it is hosted. – joecoder Commented May 3, 2013 at 19:20
1 Answer
Reset to default 10There are few solutions that will suite your need.
Solution 1
This solution requires jQuery and because you are using jQuery Mobile it will work as a charm.
$.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!");
}
});
For more info take a look at this official documentation about ajaxSetup.
Solution 2
This one is little bit tricky because it depends on HTML5 browser implementation.
Basically you need to check if this value is true or false:
window.navigator.onLine -- it will be false if the user is offline.
Working example: http://jsfiddle/Gajotres/VXWGG/1/
Tested on:
Windows Firefox
Windows Google Chrome
Windows IE9 and IE10
Android 4.1.1 Chrome
iPad 3 Safari
iPad3 Chrome