【问题标题】:Controlling a HTML page via Socket.io通过 Socket.io 控制 HTML 页面
【发布时间】:2014-11-15 03:47:39
【问题描述】:

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

我正在使用字符串比较。 每当收到的字符串“打开”时,我都尝试将标题变为绿色。 但是,以下命令不会将标题变为绿色:

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

但是,如果我告诉我的计算机在收到“on”以外的任何消息时将标题变为绿色。 然后标题变成绿色。然而,传入的消息是完全“开启”的!在这种情况下,标题不应变为绿色!

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

【问题讨论】:

  • 有人知道吗?我不明白。

标签: javascript jquery html node.js socket.io


【解决方案1】:

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

检查这些:

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

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

【讨论】:

  • 是的,这解决了我的问题,谢谢!我确定问题是我的 Arduino 发送到服务器的换行符。接收数据 = msg.trim();删除了不可见的换行符。
猜你喜欢
  • 2017-03-18
  • 1970-01-01
  • 2012-12-13
  • 2011-09-16
  • 2021-02-17
  • 2014-07-19
  • 1970-01-01
  • 2020-02-24
  • 2010-11-27
相关资源
最近更新 更多