0

我使用 nodejs v0.10.12 并使用 websockets。在服务器端,我有一个类似的代码

//the http server
var server = http.createServer(function(request, response) {
    console.log((new Date()) + ' Received request for ' + request.url);
    response.writeHead(200, {'Content-Type': 'text/html'});
    response.end(clientHtml);
});
server.listen(8000, function() {
    console.log((new Date()) + ' Server is listening on port 8000');
})

//the websockets server
var wsServer = new WebSocketServer({
    httpServer: server,
    autoAcceptConnections: false
});

//connections, getting data from client , etc, etc

//try to send data to client
 connection.send('<b>Name</b></br>'+
result.row[i].p_name+
'</br></br><b>Description</b></br><textarea rows="20" cols="60">'
+result.rows[i].p_descr+
'</textarea>');

我想connection.send通过 websockets 将包含在从服务器中的数据发送到客户端。问题是,在客户端,html标签也会呈现,在我得到的浏览器上

<b>Name</b></br>testpoint5</br></br><b>Description</b></br><textarearows="20"cols="60">testpoint5</textarea>

我搜索了“通过websockets的html标签”等,但没有任何用处......

有什么建议么?如何使 html 标签在客户端“工作”,而不仅仅是渲染?

谢谢

4

1 回答 1

0

您稍后会尝试将该数据插入 DOM 吗?

在这种情况下,您需要转义您的标签。我的意思是<应该成为&lt;并且>应该成为&gt;

您还需要转义其他字符。在谷歌上查找“转义 html 实体”。

您应该在服务器端执行此操作:

connection.send("&lt;b&gt;Name&lt;/b&gt;&lt;/br&gt;"+result.rows[i].p_name+"&lt;/br&gt;&lt;/br&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/br&gt;&lt;textarearows="20"cols="60"&gt;"+result.rows[i].p_descr+"&lt;/textarea&gt;")
于 2013-07-18T17:32:58.583 回答