2014-09-20 98 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