Проверка интернет-соединения и изменение содержимого jquery / Javascript

0

Все это происходит при загрузке страницы без вызова события вызова:

Вот обновленный код. В этом я пытаюсь проверить подключение к Интернету или нет. Если соединение отключено, тогда ссылка будет автоматически отключена (без кликабельности), а bgcolor изменится на красный.

И если соединение отключено, ссылка будет автоматически активирована (кликабельна), и bgcolor изменится на зеленый. Однако мне не хватает чего-то:

код:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.css">
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.js"></script>
</head>
<style>
.connected{ background-color:green;}
.diconnected{background-color:red;}
#link1{
    width: 100px;
    height: 200px;
    border: #0FF 1px solid;
}
</style>
<body>
<a href="#" id="link1"><img src="images/network.png"> My status</a>

</body>
<script>
window.onload=function() {
   var tId = setInterval(function() {
     document.getElementById("link1").disabled=!navigator.onLine;
   },500);
   if (navigator.onLine) {
       $("link1").bind('click', true).addClass('connected').removeclass('diconnected');

} else {
   $('.link1').unbind('click', false);
   $(".link1").bind('click', true).addClass('diconnected').removeclass('diconnected');
}

}

</script>
</html>

Спасибо за помощь.

  • 0
    Как вы думаете, что делают .unbind('click', false) и .bind('click', true) ?
  • 0
    подключены и отключены оба зеленого цвета. и если пользователь может загрузить вашу страницу, он, вероятно, онлайн. Вы также пытаетесь выбрать <link1> , я предполагаю, что вы забыли <link1> точку
Теги:
jquery-mobile

2 ответа

1

вы можете написать следующее перед закрытием тега body =>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>

Вы можете проверить доступность следующим образом

function hostReachable() {

  // Handle IE and more capable browsers
  var xhr = new ( window.ActiveXObject || XMLHttpRequest )( "Microsoft.XMLHTTP" );
  var status;

  // Open new request as a HEAD to the root hostname with a random param to bust the cache
  xhr.open( "HEAD", "//" + window.location.hostname + "/?rand=" + Math.floor((1 + Math.random()) * 0x10000), false );

  // Issue request and handle response
  try {
    xhr.send();
    return ( xhr.status >= 200 && xhr.status < 300 || xhr.status === 304 );
  } catch (error) {
    return false;
  }

}
1

Прежде всего, если у пользователя нет подключения к Интернету, как вы можете загружать библиотеку jQuery из внешнего источника? Нет интернет = нет веб-страницы.

Я собираюсь догадаться, что это расположено в интрасети/сети какого-либо типа, доступной без подключения к Интернету, и если это так, вам нужно будет сами загрузить библиотеки jQuery и загрузить их на локальный сервер, к которым к ним можно получить доступ сеть.

Во-вторых, вы неправильно указали свой идентификатор и класс.

$("link1") // Wrong
$("#link1") // Right

Они должны быть изменены, чтобы jQuery знал, что он указывает на правильную вещь.

  • 0
    Это автономное приложение для тестирования

Ещё вопросы

Сообщество Overcoder
Наверх
Меню