2014-09-20 36 views
0

我想通过使用通过Socket.io从我的Node.js服务器接收的字符串来控制HTML页面的外观。 我收到的每个字符串都成为列表中的一个条目(请参见下面的屏幕截图)。 直到这里它的工作。 现在,我想用这些字符串来控制其他东西,例如标题的颜色通过Socket.io控制HTML页面

我正在使用字符串比较。 每当收到的字符串“开”时,我都试着将标题变成绿色。 但是,下面的命令不转航向绿色:

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 2014-09-21 21:50:35

回答

0

这似乎是与字符串比较的问题。你确定receivedData中没有空格或一些奇怪的unicode字符吗? 用.trim()再试一次。

检查这些:

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

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

+1

是的,这解决了我的问题,谢谢! 我确信这个问题是由我的Arduino发送给服务器的换行符。 receivedData = msg.trim(); 删除了不可见的换行符。 – wurstbrotrest 2014-09-22 18:48:31