2014-09-20 3 views
0

Я хотел бы контролировать внешний вид HTML-страницы, используя строки, которые я получаю с моего сервера Node.js через Socket.io. Каждая строка, которую я получаю, становится записью в списке (см. Снимок экрана ниже). До этого он работает. Теперь, я хочу использовать эти строки для управления другими вещами, например, цвет заголовкаУправление страницей HTML через Socket.io

Я использую сравнение строк. Я попытался повернуть заголовок зеленым, когда полученная строка «включена». Однако, следующая команда не включается заголовок зеленый:

if(receivedData == "on") 
{ 
    $("#currentData").css("color", "green"); 
} 

Но если я скажу, мой компьютер, чтобы включить заголовок зеленым цветом, когда какое-либо сообщение, кроме «на» приходит в Тогда заголовок зеленеет.. Однако входящее сообщение точно «включено»! В этом случае заголовок не должен становиться зеленым!

if(receivedData != "on") 
{ 
    $("#currentData").css("color", "green"); 
} 

Что я делаю неправильно?

Вот полный HTML-код на стороне клиента и ссылка на скриншот.

<!doctype html> 
<html> 
    <head> 
     <title>Browser Info Panel</title> 
     <link rel="stylesheet" type="text/css" href="./styles.css"> 
    </head> 

    <body> 
     <div id="currentData"> <h1> CurrentData </h1> </div> 
     <ul id="messages" /ul> 


     <script src="/socket.io/socket.io.js"></script> 
     <script src="http://code.jquery.com/jquery-1.11.1.js"></script> 
     <script>  
      var receivedData; 
      var socket = io(); 
      socket.on('chat message', function(msg) 
      { 
       $('#messages').append($('<li>').text(msg)); 
       receivedData = msg; 

       if(receivedData != "on") 
       { 
        $("#currentData").css("color", "green"); 
       } 
      }); 
     </script> 
    </body> 
</html> 

Скриншот: http://i.imgur.com/ruZP0x5.jpg

+0

Кто-нибудь идеи? Я не понимаю. – wurstbrotrest

ответ

0

Это похоже на проблему с сравнения String. Вы уверены, что нет пробелов или каких-то странных символов Unicode в receivedData? Повторите попытку с помощью .trim().

Проверьте это:

https://stackoverflow.com/a/19649034/1528880

https://stackoverflow.com/a/1706650/1528880

+1

Да, это решило мою проблему, спасибо! Я уверен, что проблема была новой строкой, которая была отправлена ​​моим Arduino на сервер. receivedData = msg.trim(); удалены невидимые символы новой строки. – wurstbrotrest

Смежные вопросы